16be1a0bad
In a later patch I'm going to add more API; basically rather than doing the JSON parsing from C, we can add APIs to directly access the treefile object. This also demonstrates how we can do more extensive APIs, in particular implement an "object" in Rust. The ownership across the FFI boundary becomes nicer here too, we don't need to do a dance with the fd. For writing this I found http://jakegoulding.com/rust-ffi-omnibus/objects/ quite useful, as well as https://github.com/rust-lang/regex/blob/master/regex-capi/src/rure.rs Closes: #1474 Approved by: jlebon
33 lines
1.3 KiB
C
33 lines
1.3 KiB
C
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
|
*
|
|
* Copyright (C) 2018 Jonathan Lebon <jonathan@jlebon.com>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
typedef struct RpmOstreeRsTreefile RpmOstreeRsTreefile;
|
|
|
|
RpmOstreeRsTreefile *rpmostree_rs_treefile_new (const char *filename,
|
|
const char *arch,
|
|
GError **error);
|
|
|
|
int rpmostree_rs_treefile_to_json (RpmOstreeRsTreefile *tf, GError **error);
|
|
|
|
void rpmostree_rs_treefile_free (RpmOstreeRsTreefile *tf);
|
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(RpmOstreeRsTreefile, rpmostree_rs_treefile_free);
|