ostree_sys/
lib.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files
3// DO NOT EDIT
4
5#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
6#![allow(
7    clippy::approx_constant,
8    clippy::type_complexity,
9    clippy::unreadable_literal,
10    clippy::upper_case_acronyms
11)]
12#![cfg_attr(docsrs, feature(doc_cfg))]
13
14use gio_sys as gio;
15use glib_sys as glib;
16use gobject_sys as gobject;
17
18mod manual;
19
20pub use manual::*;
21
22#[cfg(unix)]
23#[allow(unused_imports)]
24use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
25#[allow(unused_imports)]
26use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE};
27#[allow(unused_imports)]
28use std::ffi::{
29    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
30};
31
32#[allow(unused_imports)]
33use glib::{gboolean, gconstpointer, gpointer, GType};
34
35// Aliases
36pub type OstreeCollectionRefv = *mut *mut OstreeCollectionRef;
37pub type OstreeRepoFinderResultv = *mut *mut OstreeRepoFinderResult;
38
39// Enums
40pub type OstreeDeploymentUnlockedState = c_int;
41pub const OSTREE_DEPLOYMENT_UNLOCKED_NONE: OstreeDeploymentUnlockedState = 0;
42pub const OSTREE_DEPLOYMENT_UNLOCKED_DEVELOPMENT: OstreeDeploymentUnlockedState = 1;
43pub const OSTREE_DEPLOYMENT_UNLOCKED_HOTFIX: OstreeDeploymentUnlockedState = 2;
44pub const OSTREE_DEPLOYMENT_UNLOCKED_TRANSIENT: OstreeDeploymentUnlockedState = 3;
45
46pub type OstreeGpgError = c_int;
47pub const OSTREE_GPG_ERROR_NO_SIGNATURE: OstreeGpgError = 0;
48pub const OSTREE_GPG_ERROR_INVALID_SIGNATURE: OstreeGpgError = 1;
49pub const OSTREE_GPG_ERROR_MISSING_KEY: OstreeGpgError = 2;
50pub const OSTREE_GPG_ERROR_EXPIRED_SIGNATURE: OstreeGpgError = 3;
51pub const OSTREE_GPG_ERROR_EXPIRED_KEY: OstreeGpgError = 4;
52pub const OSTREE_GPG_ERROR_REVOKED_KEY: OstreeGpgError = 5;
53
54pub type OstreeGpgSignatureAttr = c_int;
55pub const OSTREE_GPG_SIGNATURE_ATTR_VALID: OstreeGpgSignatureAttr = 0;
56pub const OSTREE_GPG_SIGNATURE_ATTR_SIG_EXPIRED: OstreeGpgSignatureAttr = 1;
57pub const OSTREE_GPG_SIGNATURE_ATTR_KEY_EXPIRED: OstreeGpgSignatureAttr = 2;
58pub const OSTREE_GPG_SIGNATURE_ATTR_KEY_REVOKED: OstreeGpgSignatureAttr = 3;
59pub const OSTREE_GPG_SIGNATURE_ATTR_KEY_MISSING: OstreeGpgSignatureAttr = 4;
60pub const OSTREE_GPG_SIGNATURE_ATTR_FINGERPRINT: OstreeGpgSignatureAttr = 5;
61pub const OSTREE_GPG_SIGNATURE_ATTR_TIMESTAMP: OstreeGpgSignatureAttr = 6;
62pub const OSTREE_GPG_SIGNATURE_ATTR_EXP_TIMESTAMP: OstreeGpgSignatureAttr = 7;
63pub const OSTREE_GPG_SIGNATURE_ATTR_PUBKEY_ALGO_NAME: OstreeGpgSignatureAttr = 8;
64pub const OSTREE_GPG_SIGNATURE_ATTR_HASH_ALGO_NAME: OstreeGpgSignatureAttr = 9;
65pub const OSTREE_GPG_SIGNATURE_ATTR_USER_NAME: OstreeGpgSignatureAttr = 10;
66pub const OSTREE_GPG_SIGNATURE_ATTR_USER_EMAIL: OstreeGpgSignatureAttr = 11;
67pub const OSTREE_GPG_SIGNATURE_ATTR_FINGERPRINT_PRIMARY: OstreeGpgSignatureAttr = 12;
68pub const OSTREE_GPG_SIGNATURE_ATTR_KEY_EXP_TIMESTAMP: OstreeGpgSignatureAttr = 13;
69pub const OSTREE_GPG_SIGNATURE_ATTR_KEY_EXP_TIMESTAMP_PRIMARY: OstreeGpgSignatureAttr = 14;
70
71pub type OstreeObjectType = c_int;
72pub const OSTREE_OBJECT_TYPE_FILE: OstreeObjectType = 1;
73pub const OSTREE_OBJECT_TYPE_DIR_TREE: OstreeObjectType = 2;
74pub const OSTREE_OBJECT_TYPE_DIR_META: OstreeObjectType = 3;
75pub const OSTREE_OBJECT_TYPE_COMMIT: OstreeObjectType = 4;
76pub const OSTREE_OBJECT_TYPE_TOMBSTONE_COMMIT: OstreeObjectType = 5;
77pub const OSTREE_OBJECT_TYPE_COMMIT_META: OstreeObjectType = 6;
78pub const OSTREE_OBJECT_TYPE_PAYLOAD_LINK: OstreeObjectType = 7;
79pub const OSTREE_OBJECT_TYPE_FILE_XATTRS: OstreeObjectType = 8;
80pub const OSTREE_OBJECT_TYPE_FILE_XATTRS_LINK: OstreeObjectType = 9;
81
82pub type OstreeRepoCheckoutFilterResult = c_int;
83pub const OSTREE_REPO_CHECKOUT_FILTER_ALLOW: OstreeRepoCheckoutFilterResult = 0;
84pub const OSTREE_REPO_CHECKOUT_FILTER_SKIP: OstreeRepoCheckoutFilterResult = 1;
85
86pub type OstreeRepoCheckoutMode = c_int;
87pub const OSTREE_REPO_CHECKOUT_MODE_NONE: OstreeRepoCheckoutMode = 0;
88pub const OSTREE_REPO_CHECKOUT_MODE_USER: OstreeRepoCheckoutMode = 1;
89
90pub type OstreeRepoCheckoutOverwriteMode = c_int;
91pub const OSTREE_REPO_CHECKOUT_OVERWRITE_NONE: OstreeRepoCheckoutOverwriteMode = 0;
92pub const OSTREE_REPO_CHECKOUT_OVERWRITE_UNION_FILES: OstreeRepoCheckoutOverwriteMode = 1;
93pub const OSTREE_REPO_CHECKOUT_OVERWRITE_ADD_FILES: OstreeRepoCheckoutOverwriteMode = 2;
94pub const OSTREE_REPO_CHECKOUT_OVERWRITE_UNION_IDENTICAL: OstreeRepoCheckoutOverwriteMode = 3;
95
96pub type OstreeRepoCommitFilterResult = c_int;
97pub const OSTREE_REPO_COMMIT_FILTER_ALLOW: OstreeRepoCommitFilterResult = 0;
98pub const OSTREE_REPO_COMMIT_FILTER_SKIP: OstreeRepoCommitFilterResult = 1;
99
100pub type OstreeRepoCommitIterResult = c_int;
101pub const OSTREE_REPO_COMMIT_ITER_RESULT_ERROR: OstreeRepoCommitIterResult = 0;
102pub const OSTREE_REPO_COMMIT_ITER_RESULT_END: OstreeRepoCommitIterResult = 1;
103pub const OSTREE_REPO_COMMIT_ITER_RESULT_FILE: OstreeRepoCommitIterResult = 2;
104pub const OSTREE_REPO_COMMIT_ITER_RESULT_DIR: OstreeRepoCommitIterResult = 3;
105
106pub type OstreeRepoLockType = c_int;
107pub const OSTREE_REPO_LOCK_SHARED: OstreeRepoLockType = 0;
108pub const OSTREE_REPO_LOCK_EXCLUSIVE: OstreeRepoLockType = 1;
109
110pub type OstreeRepoMode = c_int;
111pub const OSTREE_REPO_MODE_BARE: OstreeRepoMode = 0;
112pub const OSTREE_REPO_MODE_ARCHIVE: OstreeRepoMode = 1;
113pub const OSTREE_REPO_MODE_ARCHIVE_Z2: OstreeRepoMode = 1;
114pub const OSTREE_REPO_MODE_BARE_USER: OstreeRepoMode = 2;
115pub const OSTREE_REPO_MODE_BARE_USER_ONLY: OstreeRepoMode = 3;
116pub const OSTREE_REPO_MODE_BARE_SPLIT_XATTRS: OstreeRepoMode = 4;
117
118pub type OstreeRepoRemoteChange = c_int;
119pub const OSTREE_REPO_REMOTE_CHANGE_ADD: OstreeRepoRemoteChange = 0;
120pub const OSTREE_REPO_REMOTE_CHANGE_ADD_IF_NOT_EXISTS: OstreeRepoRemoteChange = 1;
121pub const OSTREE_REPO_REMOTE_CHANGE_DELETE: OstreeRepoRemoteChange = 2;
122pub const OSTREE_REPO_REMOTE_CHANGE_DELETE_IF_EXISTS: OstreeRepoRemoteChange = 3;
123pub const OSTREE_REPO_REMOTE_CHANGE_REPLACE: OstreeRepoRemoteChange = 4;
124
125pub type OstreeStaticDeltaGenerateOpt = c_int;
126pub const OSTREE_STATIC_DELTA_GENERATE_OPT_LOWLATENCY: OstreeStaticDeltaGenerateOpt = 0;
127pub const OSTREE_STATIC_DELTA_GENERATE_OPT_MAJOR: OstreeStaticDeltaGenerateOpt = 1;
128
129pub type OstreeStaticDeltaIndexFlags = c_int;
130pub const OSTREE_STATIC_DELTA_INDEX_FLAGS_NONE: OstreeStaticDeltaIndexFlags = 0;
131
132// Constants
133pub const OSTREE_COMMIT_GVARIANT_STRING: &[u8] = b"(a{sv}aya(say)sstayay)\0";
134pub const OSTREE_COMMIT_META_KEY_ARCHITECTURE: &[u8] = b"ostree.architecture\0";
135pub const OSTREE_COMMIT_META_KEY_COLLECTION_BINDING: &[u8] = b"ostree.collection-binding\0";
136pub const OSTREE_COMMIT_META_KEY_ENDOFLIFE: &[u8] = b"ostree.endoflife\0";
137pub const OSTREE_COMMIT_META_KEY_ENDOFLIFE_REBASE: &[u8] = b"ostree.endoflife-rebase\0";
138pub const OSTREE_COMMIT_META_KEY_REF_BINDING: &[u8] = b"ostree.ref-binding\0";
139pub const OSTREE_COMMIT_META_KEY_SOURCE_TITLE: &[u8] = b"ostree.source-title\0";
140pub const OSTREE_COMMIT_META_KEY_VERSION: &[u8] = b"version\0";
141pub const OSTREE_DIRMETA_GVARIANT_STRING: &[u8] = b"(uuua(ayay))\0";
142pub const OSTREE_FILEMETA_GVARIANT_STRING: &[u8] = b"(uuua(ayay))\0";
143pub const OSTREE_GPG_KEY_GVARIANT_STRING: &[u8] = b"(aa{sv}aa{sv}a{sv})\0";
144pub const OSTREE_MAX_METADATA_SIZE: c_int = 134217728;
145pub const OSTREE_MAX_METADATA_WARN_SIZE: c_int = 7340032;
146pub const OSTREE_METADATA_KEY_BOOTABLE: &[u8] = b"ostree.bootable\0";
147pub const OSTREE_METADATA_KEY_LINUX: &[u8] = b"ostree.linux\0";
148pub const OSTREE_META_KEY_DEPLOY_COLLECTION_ID: &[u8] = b"ostree.deploy-collection-id\0";
149pub const OSTREE_ORIGIN_TRANSIENT_GROUP: &[u8] = b"libostree-transient\0";
150pub const OSTREE_PATH_BOOTED: &[u8] = b"/run/ostree-booted\0";
151pub const OSTREE_REPO_METADATA_REF: &[u8] = b"ostree-metadata\0";
152pub const OSTREE_SHA256_DIGEST_LEN: c_int = 32;
153pub const OSTREE_SHA256_STRING_LEN: c_int = 64;
154pub const OSTREE_SIGN_NAME_ED25519: &[u8] = b"ed25519\0";
155pub const OSTREE_SUMMARY_GVARIANT_STRING: &[u8] = b"(a(s(taya{sv}))a{sv})\0";
156pub const OSTREE_SUMMARY_SIG_GVARIANT_STRING: &[u8] = b"a{sv}\0";
157pub const OSTREE_TIMESTAMP: c_int = 0;
158pub const OSTREE_TREE_GVARIANT_STRING: &[u8] = b"(a(say)a(sayay))\0";
159
160// Flags
161pub type OstreeChecksumFlags = c_uint;
162pub const OSTREE_CHECKSUM_FLAGS_NONE: OstreeChecksumFlags = 0;
163pub const OSTREE_CHECKSUM_FLAGS_IGNORE_XATTRS: OstreeChecksumFlags = 1;
164pub const OSTREE_CHECKSUM_FLAGS_CANONICAL_PERMISSIONS: OstreeChecksumFlags = 2;
165
166pub type OstreeDiffFlags = c_uint;
167pub const OSTREE_DIFF_FLAGS_NONE: OstreeDiffFlags = 0;
168pub const OSTREE_DIFF_FLAGS_IGNORE_XATTRS: OstreeDiffFlags = 1;
169
170pub type OstreeGpgSignatureFormatFlags = c_uint;
171pub const OSTREE_GPG_SIGNATURE_FORMAT_DEFAULT: OstreeGpgSignatureFormatFlags = 0;
172
173pub type OstreeRepoCommitModifierFlags = c_uint;
174pub const OSTREE_REPO_COMMIT_MODIFIER_FLAGS_NONE: OstreeRepoCommitModifierFlags = 0;
175pub const OSTREE_REPO_COMMIT_MODIFIER_FLAGS_SKIP_XATTRS: OstreeRepoCommitModifierFlags = 1;
176pub const OSTREE_REPO_COMMIT_MODIFIER_FLAGS_GENERATE_SIZES: OstreeRepoCommitModifierFlags = 2;
177pub const OSTREE_REPO_COMMIT_MODIFIER_FLAGS_CANONICAL_PERMISSIONS: OstreeRepoCommitModifierFlags =
178    4;
179pub const OSTREE_REPO_COMMIT_MODIFIER_FLAGS_ERROR_ON_UNLABELED: OstreeRepoCommitModifierFlags = 8;
180pub const OSTREE_REPO_COMMIT_MODIFIER_FLAGS_CONSUME: OstreeRepoCommitModifierFlags = 16;
181pub const OSTREE_REPO_COMMIT_MODIFIER_FLAGS_DEVINO_CANONICAL: OstreeRepoCommitModifierFlags = 32;
182pub const OSTREE_REPO_COMMIT_MODIFIER_FLAGS_SELINUX_LABEL_V1: OstreeRepoCommitModifierFlags = 64;
183
184pub type OstreeRepoCommitState = c_uint;
185pub const OSTREE_REPO_COMMIT_STATE_NORMAL: OstreeRepoCommitState = 0;
186pub const OSTREE_REPO_COMMIT_STATE_PARTIAL: OstreeRepoCommitState = 1;
187pub const OSTREE_REPO_COMMIT_STATE_FSCK_PARTIAL: OstreeRepoCommitState = 2;
188
189pub type OstreeRepoCommitTraverseFlags = c_uint;
190pub const OSTREE_REPO_COMMIT_TRAVERSE_FLAG_NONE: OstreeRepoCommitTraverseFlags = 1;
191pub const OSTREE_REPO_COMMIT_TRAVERSE_FLAG_COMMIT_ONLY: OstreeRepoCommitTraverseFlags = 2;
192
193pub type OstreeRepoListObjectsFlags = c_uint;
194pub const OSTREE_REPO_LIST_OBJECTS_LOOSE: OstreeRepoListObjectsFlags = 1;
195pub const OSTREE_REPO_LIST_OBJECTS_PACKED: OstreeRepoListObjectsFlags = 2;
196pub const OSTREE_REPO_LIST_OBJECTS_ALL: OstreeRepoListObjectsFlags = 4;
197pub const OSTREE_REPO_LIST_OBJECTS_NO_PARENTS: OstreeRepoListObjectsFlags = 8;
198
199pub type OstreeRepoListRefsExtFlags = c_uint;
200pub const OSTREE_REPO_LIST_REFS_EXT_NONE: OstreeRepoListRefsExtFlags = 0;
201pub const OSTREE_REPO_LIST_REFS_EXT_ALIASES: OstreeRepoListRefsExtFlags = 1;
202pub const OSTREE_REPO_LIST_REFS_EXT_EXCLUDE_REMOTES: OstreeRepoListRefsExtFlags = 2;
203pub const OSTREE_REPO_LIST_REFS_EXT_EXCLUDE_MIRRORS: OstreeRepoListRefsExtFlags = 4;
204
205pub type OstreeRepoPruneFlags = c_uint;
206pub const OSTREE_REPO_PRUNE_FLAGS_NONE: OstreeRepoPruneFlags = 0;
207pub const OSTREE_REPO_PRUNE_FLAGS_NO_PRUNE: OstreeRepoPruneFlags = 1;
208pub const OSTREE_REPO_PRUNE_FLAGS_REFS_ONLY: OstreeRepoPruneFlags = 2;
209pub const OSTREE_REPO_PRUNE_FLAGS_COMMIT_ONLY: OstreeRepoPruneFlags = 4;
210
211pub type OstreeRepoPullFlags = c_uint;
212pub const OSTREE_REPO_PULL_FLAGS_NONE: OstreeRepoPullFlags = 0;
213pub const OSTREE_REPO_PULL_FLAGS_MIRROR: OstreeRepoPullFlags = 1;
214pub const OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY: OstreeRepoPullFlags = 2;
215pub const OSTREE_REPO_PULL_FLAGS_UNTRUSTED: OstreeRepoPullFlags = 4;
216pub const OSTREE_REPO_PULL_FLAGS_BAREUSERONLY_FILES: OstreeRepoPullFlags = 8;
217pub const OSTREE_REPO_PULL_FLAGS_TRUSTED_HTTP: OstreeRepoPullFlags = 16;
218
219pub type OstreeRepoResolveRevExtFlags = c_uint;
220pub const OSTREE_REPO_RESOLVE_REV_EXT_NONE: OstreeRepoResolveRevExtFlags = 0;
221pub const OSTREE_REPO_RESOLVE_REV_EXT_LOCAL_ONLY: OstreeRepoResolveRevExtFlags = 1;
222
223pub type OstreeRepoVerifyFlags = c_uint;
224pub const OSTREE_REPO_VERIFY_FLAGS_NONE: OstreeRepoVerifyFlags = 0;
225pub const OSTREE_REPO_VERIFY_FLAGS_NO_GPG: OstreeRepoVerifyFlags = 1;
226pub const OSTREE_REPO_VERIFY_FLAGS_NO_SIGNAPI: OstreeRepoVerifyFlags = 2;
227
228pub type OstreeSePolicyRestoreconFlags = c_uint;
229pub const OSTREE_SEPOLICY_RESTORECON_FLAGS_NONE: OstreeSePolicyRestoreconFlags = 0;
230pub const OSTREE_SEPOLICY_RESTORECON_FLAGS_ALLOW_NOLABEL: OstreeSePolicyRestoreconFlags = 1;
231pub const OSTREE_SEPOLICY_RESTORECON_FLAGS_KEEP_EXISTING: OstreeSePolicyRestoreconFlags = 2;
232
233pub type OstreeSysrootSimpleWriteDeploymentFlags = c_uint;
234pub const OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NONE:
235    OstreeSysrootSimpleWriteDeploymentFlags = 0;
236pub const OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_RETAIN:
237    OstreeSysrootSimpleWriteDeploymentFlags = 1;
238pub const OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NOT_DEFAULT:
239    OstreeSysrootSimpleWriteDeploymentFlags = 2;
240pub const OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NO_CLEAN:
241    OstreeSysrootSimpleWriteDeploymentFlags = 4;
242pub const OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_RETAIN_PENDING:
243    OstreeSysrootSimpleWriteDeploymentFlags = 8;
244pub const OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_RETAIN_ROLLBACK:
245    OstreeSysrootSimpleWriteDeploymentFlags = 16;
246
247pub type OstreeSysrootUpgraderFlags = c_uint;
248pub const OSTREE_SYSROOT_UPGRADER_FLAGS_IGNORE_UNCONFIGURED: OstreeSysrootUpgraderFlags = 2;
249pub const OSTREE_SYSROOT_UPGRADER_FLAGS_STAGE: OstreeSysrootUpgraderFlags = 4;
250pub const OSTREE_SYSROOT_UPGRADER_FLAGS_KEXEC: OstreeSysrootUpgraderFlags = 8;
251
252pub type OstreeSysrootUpgraderPullFlags = c_uint;
253pub const OSTREE_SYSROOT_UPGRADER_PULL_FLAGS_NONE: OstreeSysrootUpgraderPullFlags = 0;
254pub const OSTREE_SYSROOT_UPGRADER_PULL_FLAGS_ALLOW_OLDER: OstreeSysrootUpgraderPullFlags = 1;
255pub const OSTREE_SYSROOT_UPGRADER_PULL_FLAGS_SYNTHETIC: OstreeSysrootUpgraderPullFlags = 2;
256
257// Callbacks
258pub type OstreeRepoCheckoutFilter = Option<
259    unsafe extern "C" fn(
260        *mut OstreeRepo,
261        *const c_char,
262        *mut stat,
263        gpointer,
264    ) -> OstreeRepoCheckoutFilterResult,
265>;
266pub type OstreeRepoCommitFilter = Option<
267    unsafe extern "C" fn(
268        *mut OstreeRepo,
269        *const c_char,
270        *mut gio::GFileInfo,
271        gpointer,
272    ) -> OstreeRepoCommitFilterResult,
273>;
274pub type OstreeRepoCommitModifierXattrCallback = Option<
275    unsafe extern "C" fn(
276        *mut OstreeRepo,
277        *const c_char,
278        *mut gio::GFileInfo,
279        gpointer,
280    ) -> *mut glib::GVariant,
281>;
282pub type OstreeRepoImportArchiveTranslatePathname = Option<
283    unsafe extern "C" fn(*mut OstreeRepo, *const stat, *const c_char, gpointer) -> *mut c_char,
284>;
285
286// Records
287#[derive(Copy, Clone)]
288#[repr(C)]
289pub struct OstreeAsyncProgressClass {
290    pub parent_class: gobject::GObjectClass,
291    pub changed: Option<unsafe extern "C" fn(*mut OstreeAsyncProgress, gpointer)>,
292}
293
294impl ::std::fmt::Debug for OstreeAsyncProgressClass {
295    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
296        f.debug_struct(&format!("OstreeAsyncProgressClass @ {self:p}"))
297            .field("parent_class", &self.parent_class)
298            .field("changed", &self.changed)
299            .finish()
300    }
301}
302
303#[derive(Copy, Clone)]
304#[repr(C)]
305pub struct OstreeCollectionRef {
306    pub collection_id: *mut c_char,
307    pub ref_name: *mut c_char,
308}
309
310impl ::std::fmt::Debug for OstreeCollectionRef {
311    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
312        f.debug_struct(&format!("OstreeCollectionRef @ {self:p}"))
313            .field("collection_id", &self.collection_id)
314            .field("ref_name", &self.ref_name)
315            .finish()
316    }
317}
318
319#[derive(Copy, Clone)]
320#[repr(C)]
321pub struct OstreeCommitSizesEntry {
322    pub checksum: *mut c_char,
323    pub objtype: OstreeObjectType,
324    pub unpacked: u64,
325    pub archived: u64,
326}
327
328impl ::std::fmt::Debug for OstreeCommitSizesEntry {
329    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
330        f.debug_struct(&format!("OstreeCommitSizesEntry @ {self:p}"))
331            .field("checksum", &self.checksum)
332            .field("objtype", &self.objtype)
333            .field("unpacked", &self.unpacked)
334            .field("archived", &self.archived)
335            .finish()
336    }
337}
338
339#[derive(Copy, Clone)]
340#[repr(C)]
341pub struct OstreeContentWriterClass {
342    pub parent_class: gio::GOutputStreamClass,
343}
344
345impl ::std::fmt::Debug for OstreeContentWriterClass {
346    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
347        f.debug_struct(&format!("OstreeContentWriterClass @ {self:p}"))
348            .field("parent_class", &self.parent_class)
349            .finish()
350    }
351}
352
353#[derive(Copy, Clone)]
354#[repr(C)]
355pub struct OstreeDiffDirsOptions {
356    pub owner_uid: c_int,
357    pub owner_gid: c_int,
358    pub devino_to_csum_cache: *mut OstreeRepoDevInoCache,
359    pub unused_bools: [gboolean; 7],
360    pub unused_ints: [c_int; 6],
361    pub unused_ptrs: [gpointer; 7],
362}
363
364impl ::std::fmt::Debug for OstreeDiffDirsOptions {
365    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
366        f.debug_struct(&format!("OstreeDiffDirsOptions @ {self:p}"))
367            .field("owner_uid", &self.owner_uid)
368            .field("owner_gid", &self.owner_gid)
369            .field("devino_to_csum_cache", &self.devino_to_csum_cache)
370            .field("unused_bools", &self.unused_bools)
371            .field("unused_ints", &self.unused_ints)
372            .field("unused_ptrs", &self.unused_ptrs)
373            .finish()
374    }
375}
376
377#[derive(Copy, Clone)]
378#[repr(C)]
379pub struct OstreeDiffItem {
380    pub refcount: c_int,
381    pub src: *mut gio::GFile,
382    pub target: *mut gio::GFile,
383    pub src_info: *mut gio::GFileInfo,
384    pub target_info: *mut gio::GFileInfo,
385    pub src_checksum: *mut c_char,
386    pub target_checksum: *mut c_char,
387}
388
389impl ::std::fmt::Debug for OstreeDiffItem {
390    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
391        f.debug_struct(&format!("OstreeDiffItem @ {self:p}"))
392            .field("refcount", &self.refcount)
393            .field("src", &self.src)
394            .field("target", &self.target)
395            .field("src_info", &self.src_info)
396            .field("target_info", &self.target_info)
397            .field("src_checksum", &self.src_checksum)
398            .field("target_checksum", &self.target_checksum)
399            .finish()
400    }
401}
402
403#[repr(C)]
404#[allow(dead_code)]
405pub struct _OstreeKernelArgs {
406    _data: [u8; 0],
407    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
408}
409
410pub type OstreeKernelArgs = _OstreeKernelArgs;
411
412#[derive(Copy, Clone)]
413#[repr(C)]
414pub struct OstreeMutableTreeClass {
415    pub parent_class: gobject::GObjectClass,
416}
417
418impl ::std::fmt::Debug for OstreeMutableTreeClass {
419    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
420        f.debug_struct(&format!("OstreeMutableTreeClass @ {self:p}"))
421            .field("parent_class", &self.parent_class)
422            .finish()
423    }
424}
425
426#[derive(Copy, Clone)]
427#[repr(C)]
428pub struct OstreeMutableTreeIter {
429    pub in_files: gboolean,
430    pub iter: glib::GHashTableIter,
431}
432
433impl ::std::fmt::Debug for OstreeMutableTreeIter {
434    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
435        f.debug_struct(&format!("OstreeMutableTreeIter @ {self:p}"))
436            .field("in_files", &self.in_files)
437            .field("iter", &self.iter)
438            .finish()
439    }
440}
441
442#[repr(C)]
443#[allow(dead_code)]
444pub struct OstreeRemote {
445    _data: [u8; 0],
446    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
447}
448
449impl ::std::fmt::Debug for OstreeRemote {
450    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
451        f.debug_struct(&format!("OstreeRemote @ {self:p}")).finish()
452    }
453}
454
455#[derive(Copy, Clone)]
456#[repr(C)]
457pub struct OstreeRepoCheckoutAtOptions {
458    pub mode: OstreeRepoCheckoutMode,
459    pub overwrite_mode: OstreeRepoCheckoutOverwriteMode,
460    pub enable_uncompressed_cache: gboolean,
461    pub enable_fsync: gboolean,
462    pub process_whiteouts: gboolean,
463    pub no_copy_fallback: gboolean,
464    pub force_copy: gboolean,
465    pub bareuseronly_dirs: gboolean,
466    pub force_copy_zerosized: gboolean,
467    pub process_passthrough_whiteouts: gboolean,
468    pub unused_bools: [gboolean; 3],
469    pub subpath: *const c_char,
470    pub devino_to_csum_cache: *mut OstreeRepoDevInoCache,
471    pub unused_ints: [c_int; 6],
472    pub unused_ptrs: [gpointer; 3],
473    pub filter: OstreeRepoCheckoutFilter,
474    pub filter_user_data: gpointer,
475    pub sepolicy: *mut OstreeSePolicy,
476    pub sepolicy_prefix: *const c_char,
477}
478
479impl ::std::fmt::Debug for OstreeRepoCheckoutAtOptions {
480    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
481        f.debug_struct(&format!("OstreeRepoCheckoutAtOptions @ {self:p}"))
482            .field("mode", &self.mode)
483            .field("overwrite_mode", &self.overwrite_mode)
484            .field("enable_uncompressed_cache", &self.enable_uncompressed_cache)
485            .field("enable_fsync", &self.enable_fsync)
486            .field("process_whiteouts", &self.process_whiteouts)
487            .field("no_copy_fallback", &self.no_copy_fallback)
488            .field("force_copy", &self.force_copy)
489            .field("bareuseronly_dirs", &self.bareuseronly_dirs)
490            .field("force_copy_zerosized", &self.force_copy_zerosized)
491            .field(
492                "process_passthrough_whiteouts",
493                &self.process_passthrough_whiteouts,
494            )
495            .field("unused_bools", &self.unused_bools)
496            .field("subpath", &self.subpath)
497            .field("devino_to_csum_cache", &self.devino_to_csum_cache)
498            .field("unused_ints", &self.unused_ints)
499            .field("unused_ptrs", &self.unused_ptrs)
500            .field("filter", &self.filter)
501            .field("filter_user_data", &self.filter_user_data)
502            .field("sepolicy", &self.sepolicy)
503            .field("sepolicy_prefix", &self.sepolicy_prefix)
504            .finish()
505    }
506}
507
508#[repr(C)]
509#[allow(dead_code)]
510pub struct OstreeRepoCheckoutOptions {
511    pub mode: OstreeRepoCheckoutMode,
512    pub overwrite_mode: OstreeRepoCheckoutOverwriteMode,
513    pub enable_uncompressed_cache: c_uint,
514    _truncated_record_marker: c_void,
515    // field disable_fsync has incomplete type
516}
517
518impl ::std::fmt::Debug for OstreeRepoCheckoutOptions {
519    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
520        f.debug_struct(&format!("OstreeRepoCheckoutOptions @ {self:p}"))
521            .field("mode", &self.mode)
522            .field("overwrite_mode", &self.overwrite_mode)
523            .field("enable_uncompressed_cache", &self.enable_uncompressed_cache)
524            .finish()
525    }
526}
527
528#[repr(C)]
529#[allow(dead_code)]
530pub struct OstreeRepoCommitModifier {
531    _data: [u8; 0],
532    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
533}
534
535impl ::std::fmt::Debug for OstreeRepoCommitModifier {
536    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
537        f.debug_struct(&format!("OstreeRepoCommitModifier @ {self:p}"))
538            .finish()
539    }
540}
541
542#[derive(Copy, Clone)]
543#[repr(C)]
544pub struct OstreeRepoCommitTraverseIter {
545    pub initialized: gboolean,
546    pub dummy: [gpointer; 10],
547    pub dummy_checksum_data: [c_char; 130],
548}
549
550impl ::std::fmt::Debug for OstreeRepoCommitTraverseIter {
551    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
552        f.debug_struct(&format!("OstreeRepoCommitTraverseIter @ {self:p}"))
553            .field("initialized", &self.initialized)
554            .field("dummy", &self.dummy)
555            .finish()
556    }
557}
558
559#[repr(C)]
560#[allow(dead_code)]
561pub struct OstreeRepoDevInoCache {
562    _data: [u8; 0],
563    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
564}
565
566impl ::std::fmt::Debug for OstreeRepoDevInoCache {
567    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
568        f.debug_struct(&format!("OstreeRepoDevInoCache @ {self:p}"))
569            .finish()
570    }
571}
572
573#[repr(C)]
574#[allow(dead_code)]
575pub struct OstreeRepoExportArchiveOptions {
576    pub disable_xattrs: c_uint,
577    _truncated_record_marker: c_void,
578    // field reserved has incomplete type
579}
580
581impl ::std::fmt::Debug for OstreeRepoExportArchiveOptions {
582    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
583        f.debug_struct(&format!("OstreeRepoExportArchiveOptions @ {self:p}"))
584            .field("disable_xattrs", &self.disable_xattrs)
585            .finish()
586    }
587}
588
589#[derive(Copy, Clone)]
590#[repr(C)]
591pub struct OstreeRepoFileClass {
592    pub parent_class: gobject::GObjectClass,
593}
594
595impl ::std::fmt::Debug for OstreeRepoFileClass {
596    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
597        f.debug_struct(&format!("OstreeRepoFileClass @ {self:p}"))
598            .field("parent_class", &self.parent_class)
599            .finish()
600    }
601}
602
603#[derive(Copy, Clone)]
604#[repr(C)]
605pub struct OstreeRepoFinderAvahiClass {
606    pub parent_class: gobject::GObjectClass,
607}
608
609impl ::std::fmt::Debug for OstreeRepoFinderAvahiClass {
610    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
611        f.debug_struct(&format!("OstreeRepoFinderAvahiClass @ {self:p}"))
612            .field("parent_class", &self.parent_class)
613            .finish()
614    }
615}
616
617#[derive(Copy, Clone)]
618#[repr(C)]
619pub struct OstreeRepoFinderConfigClass {
620    pub parent_class: gobject::GObjectClass,
621}
622
623impl ::std::fmt::Debug for OstreeRepoFinderConfigClass {
624    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
625        f.debug_struct(&format!("OstreeRepoFinderConfigClass @ {self:p}"))
626            .field("parent_class", &self.parent_class)
627            .finish()
628    }
629}
630
631#[derive(Copy, Clone)]
632#[repr(C)]
633pub struct OstreeRepoFinderInterface {
634    pub g_iface: gobject::GTypeInterface,
635    pub resolve_async: Option<
636        unsafe extern "C" fn(
637            *mut OstreeRepoFinder,
638            *const *const OstreeCollectionRef,
639            *mut OstreeRepo,
640            *mut gio::GCancellable,
641            gio::GAsyncReadyCallback,
642            gpointer,
643        ),
644    >,
645    pub resolve_finish: Option<
646        unsafe extern "C" fn(
647            *mut OstreeRepoFinder,
648            *mut gio::GAsyncResult,
649            *mut *mut glib::GError,
650        ) -> *mut glib::GPtrArray,
651    >,
652}
653
654impl ::std::fmt::Debug for OstreeRepoFinderInterface {
655    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
656        f.debug_struct(&format!("OstreeRepoFinderInterface @ {self:p}"))
657            .field("g_iface", &self.g_iface)
658            .field("resolve_async", &self.resolve_async)
659            .field("resolve_finish", &self.resolve_finish)
660            .finish()
661    }
662}
663
664#[derive(Copy, Clone)]
665#[repr(C)]
666pub struct OstreeRepoFinderMountClass {
667    pub parent_class: gobject::GObjectClass,
668}
669
670impl ::std::fmt::Debug for OstreeRepoFinderMountClass {
671    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
672        f.debug_struct(&format!("OstreeRepoFinderMountClass @ {self:p}"))
673            .field("parent_class", &self.parent_class)
674            .finish()
675    }
676}
677
678#[derive(Copy, Clone)]
679#[repr(C)]
680pub struct OstreeRepoFinderOverrideClass {
681    pub parent_class: gobject::GObjectClass,
682}
683
684impl ::std::fmt::Debug for OstreeRepoFinderOverrideClass {
685    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
686        f.debug_struct(&format!("OstreeRepoFinderOverrideClass @ {self:p}"))
687            .field("parent_class", &self.parent_class)
688            .finish()
689    }
690}
691
692#[derive(Copy, Clone)]
693#[repr(C)]
694pub struct OstreeRepoFinderResult {
695    pub remote: *mut OstreeRemote,
696    pub finder: *mut OstreeRepoFinder,
697    pub priority: c_int,
698    pub ref_to_checksum: *mut glib::GHashTable,
699    pub summary_last_modified: u64,
700    pub ref_to_timestamp: *mut glib::GHashTable,
701    pub padding: [gpointer; 3],
702}
703
704impl ::std::fmt::Debug for OstreeRepoFinderResult {
705    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
706        f.debug_struct(&format!("OstreeRepoFinderResult @ {self:p}"))
707            .field("remote", &self.remote)
708            .field("finder", &self.finder)
709            .field("priority", &self.priority)
710            .field("ref_to_checksum", &self.ref_to_checksum)
711            .field("summary_last_modified", &self.summary_last_modified)
712            .field("ref_to_timestamp", &self.ref_to_timestamp)
713            .finish()
714    }
715}
716
717#[repr(C)]
718#[allow(dead_code)]
719pub struct OstreeRepoImportArchiveOptions {
720    pub ignore_unsupported_content: c_uint,
721    _truncated_record_marker: c_void,
722    // field autocreate_parents has incomplete type
723}
724
725impl ::std::fmt::Debug for OstreeRepoImportArchiveOptions {
726    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
727        f.debug_struct(&format!("OstreeRepoImportArchiveOptions @ {self:p}"))
728            .field(
729                "ignore_unsupported_content",
730                &self.ignore_unsupported_content,
731            )
732            .finish()
733    }
734}
735
736#[derive(Copy, Clone)]
737#[repr(C)]
738pub struct OstreeRepoPruneOptions {
739    pub flags: OstreeRepoPruneFlags,
740    pub reachable: *mut glib::GHashTable,
741    pub unused_bools: [gboolean; 6],
742    pub unused_ints: [c_int; 6],
743    pub unused_ptrs: [gpointer; 7],
744}
745
746impl ::std::fmt::Debug for OstreeRepoPruneOptions {
747    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
748        f.debug_struct(&format!("OstreeRepoPruneOptions @ {self:p}"))
749            .field("flags", &self.flags)
750            .field("reachable", &self.reachable)
751            .field("unused_bools", &self.unused_bools)
752            .field("unused_ints", &self.unused_ints)
753            .field("unused_ptrs", &self.unused_ptrs)
754            .finish()
755    }
756}
757
758#[derive(Copy, Clone)]
759#[repr(C)]
760pub struct OstreeRepoTransactionStats {
761    pub metadata_objects_total: c_uint,
762    pub metadata_objects_written: c_uint,
763    pub content_objects_total: c_uint,
764    pub content_objects_written: c_uint,
765    pub content_bytes_written: u64,
766    pub devino_cache_hits: c_uint,
767    pub padding1: c_uint,
768    pub padding2: u64,
769    pub padding3: u64,
770    pub padding4: u64,
771}
772
773impl ::std::fmt::Debug for OstreeRepoTransactionStats {
774    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
775        f.debug_struct(&format!("OstreeRepoTransactionStats @ {self:p}"))
776            .field("metadata_objects_total", &self.metadata_objects_total)
777            .field("metadata_objects_written", &self.metadata_objects_written)
778            .field("content_objects_total", &self.content_objects_total)
779            .field("content_objects_written", &self.content_objects_written)
780            .field("content_bytes_written", &self.content_bytes_written)
781            .field("devino_cache_hits", &self.devino_cache_hits)
782            .field("padding1", &self.padding1)
783            .field("padding2", &self.padding2)
784            .field("padding3", &self.padding3)
785            .field("padding4", &self.padding4)
786            .finish()
787    }
788}
789
790#[derive(Copy, Clone)]
791#[repr(C)]
792pub struct OstreeSignInterface {
793    pub g_iface: gobject::GTypeInterface,
794    pub get_name: Option<unsafe extern "C" fn(*mut OstreeSign) -> *const c_char>,
795    pub data: Option<
796        unsafe extern "C" fn(
797            *mut OstreeSign,
798            *mut glib::GBytes,
799            *mut *mut glib::GBytes,
800            *mut gio::GCancellable,
801            *mut *mut glib::GError,
802        ) -> gboolean,
803    >,
804    pub data_verify: Option<
805        unsafe extern "C" fn(
806            *mut OstreeSign,
807            *mut glib::GBytes,
808            *mut glib::GVariant,
809            *mut *mut c_char,
810            *mut *mut glib::GError,
811        ) -> gboolean,
812    >,
813    pub metadata_key: Option<unsafe extern "C" fn(*mut OstreeSign) -> *const c_char>,
814    pub metadata_format: Option<unsafe extern "C" fn(*mut OstreeSign) -> *const c_char>,
815    pub clear_keys:
816        Option<unsafe extern "C" fn(*mut OstreeSign, *mut *mut glib::GError) -> gboolean>,
817    pub set_sk: Option<
818        unsafe extern "C" fn(
819            *mut OstreeSign,
820            *mut glib::GVariant,
821            *mut *mut glib::GError,
822        ) -> gboolean,
823    >,
824    pub set_pk: Option<
825        unsafe extern "C" fn(
826            *mut OstreeSign,
827            *mut glib::GVariant,
828            *mut *mut glib::GError,
829        ) -> gboolean,
830    >,
831    pub add_pk: Option<
832        unsafe extern "C" fn(
833            *mut OstreeSign,
834            *mut glib::GVariant,
835            *mut *mut glib::GError,
836        ) -> gboolean,
837    >,
838    pub load_pk: Option<
839        unsafe extern "C" fn(
840            *mut OstreeSign,
841            *mut glib::GVariant,
842            *mut *mut glib::GError,
843        ) -> gboolean,
844    >,
845}
846
847impl ::std::fmt::Debug for OstreeSignInterface {
848    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
849        f.debug_struct(&format!("OstreeSignInterface @ {self:p}"))
850            .field("g_iface", &self.g_iface)
851            .field("get_name", &self.get_name)
852            .field("data", &self.data)
853            .field("data_verify", &self.data_verify)
854            .field("metadata_key", &self.metadata_key)
855            .field("metadata_format", &self.metadata_format)
856            .field("clear_keys", &self.clear_keys)
857            .field("set_sk", &self.set_sk)
858            .field("set_pk", &self.set_pk)
859            .field("add_pk", &self.add_pk)
860            .field("load_pk", &self.load_pk)
861            .finish()
862    }
863}
864
865#[derive(Copy, Clone)]
866#[repr(C)]
867pub struct OstreeSysrootDeployTreeOpts {
868    pub locked: gboolean,
869    pub unused_bools: [gboolean; 7],
870    pub unused_ints: [c_int; 8],
871    pub override_kernel_argv: *mut *mut c_char,
872    pub overlay_initrds: *mut *mut c_char,
873    pub unused_ptrs: [gpointer; 6],
874}
875
876impl ::std::fmt::Debug for OstreeSysrootDeployTreeOpts {
877    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
878        f.debug_struct(&format!("OstreeSysrootDeployTreeOpts @ {self:p}"))
879            .field("locked", &self.locked)
880            .field("unused_bools", &self.unused_bools)
881            .field("unused_ints", &self.unused_ints)
882            .field("override_kernel_argv", &self.override_kernel_argv)
883            .field("overlay_initrds", &self.overlay_initrds)
884            .field("unused_ptrs", &self.unused_ptrs)
885            .finish()
886    }
887}
888
889#[derive(Copy, Clone)]
890#[repr(C)]
891pub struct OstreeSysrootWriteDeploymentsOpts {
892    pub do_postclean: gboolean,
893    pub disable_auto_early_prune: gboolean,
894    pub unused_bools: [gboolean; 7],
895    pub unused_ints: [c_int; 7],
896    pub unused_ptrs: [gpointer; 7],
897}
898
899impl ::std::fmt::Debug for OstreeSysrootWriteDeploymentsOpts {
900    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
901        f.debug_struct(&format!("OstreeSysrootWriteDeploymentsOpts @ {self:p}"))
902            .field("do_postclean", &self.do_postclean)
903            .field("disable_auto_early_prune", &self.disable_auto_early_prune)
904            .field("unused_bools", &self.unused_bools)
905            .field("unused_ints", &self.unused_ints)
906            .field("unused_ptrs", &self.unused_ptrs)
907            .finish()
908    }
909}
910
911// Classes
912#[repr(C)]
913#[allow(dead_code)]
914pub struct OstreeAsyncProgress {
915    _data: [u8; 0],
916    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
917}
918
919impl ::std::fmt::Debug for OstreeAsyncProgress {
920    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
921        f.debug_struct(&format!("OstreeAsyncProgress @ {self:p}"))
922            .finish()
923    }
924}
925
926#[repr(C)]
927#[allow(dead_code)]
928pub struct OstreeBootconfigParser {
929    _data: [u8; 0],
930    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
931}
932
933impl ::std::fmt::Debug for OstreeBootconfigParser {
934    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
935        f.debug_struct(&format!("OstreeBootconfigParser @ {self:p}"))
936            .finish()
937    }
938}
939
940#[repr(C)]
941#[allow(dead_code)]
942pub struct OstreeContentWriter {
943    _data: [u8; 0],
944    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
945}
946
947impl ::std::fmt::Debug for OstreeContentWriter {
948    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
949        f.debug_struct(&format!("OstreeContentWriter @ {self:p}"))
950            .finish()
951    }
952}
953
954#[repr(C)]
955#[allow(dead_code)]
956pub struct OstreeDeployment {
957    _data: [u8; 0],
958    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
959}
960
961impl ::std::fmt::Debug for OstreeDeployment {
962    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
963        f.debug_struct(&format!("OstreeDeployment @ {self:p}"))
964            .finish()
965    }
966}
967
968#[repr(C)]
969#[allow(dead_code)]
970pub struct OstreeGpgVerifyResult {
971    _data: [u8; 0],
972    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
973}
974
975impl ::std::fmt::Debug for OstreeGpgVerifyResult {
976    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
977        f.debug_struct(&format!("OstreeGpgVerifyResult @ {self:p}"))
978            .finish()
979    }
980}
981
982#[repr(C)]
983#[allow(dead_code)]
984pub struct OstreeMutableTree {
985    _data: [u8; 0],
986    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
987}
988
989impl ::std::fmt::Debug for OstreeMutableTree {
990    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
991        f.debug_struct(&format!("OstreeMutableTree @ {self:p}"))
992            .finish()
993    }
994}
995
996#[repr(C)]
997#[allow(dead_code)]
998pub struct OstreeRepo {
999    _data: [u8; 0],
1000    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1001}
1002
1003impl ::std::fmt::Debug for OstreeRepo {
1004    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1005        f.debug_struct(&format!("OstreeRepo @ {self:p}")).finish()
1006    }
1007}
1008
1009#[repr(C)]
1010#[allow(dead_code)]
1011pub struct OstreeRepoFile {
1012    _data: [u8; 0],
1013    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1014}
1015
1016impl ::std::fmt::Debug for OstreeRepoFile {
1017    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1018        f.debug_struct(&format!("OstreeRepoFile @ {self:p}"))
1019            .finish()
1020    }
1021}
1022
1023#[repr(C)]
1024#[allow(dead_code)]
1025pub struct OstreeRepoFinderAvahi {
1026    _data: [u8; 0],
1027    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1028}
1029
1030impl ::std::fmt::Debug for OstreeRepoFinderAvahi {
1031    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1032        f.debug_struct(&format!("OstreeRepoFinderAvahi @ {self:p}"))
1033            .finish()
1034    }
1035}
1036
1037#[repr(C)]
1038#[allow(dead_code)]
1039pub struct OstreeRepoFinderConfig {
1040    _data: [u8; 0],
1041    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1042}
1043
1044impl ::std::fmt::Debug for OstreeRepoFinderConfig {
1045    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1046        f.debug_struct(&format!("OstreeRepoFinderConfig @ {self:p}"))
1047            .finish()
1048    }
1049}
1050
1051#[repr(C)]
1052#[allow(dead_code)]
1053pub struct OstreeRepoFinderMount {
1054    _data: [u8; 0],
1055    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1056}
1057
1058impl ::std::fmt::Debug for OstreeRepoFinderMount {
1059    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1060        f.debug_struct(&format!("OstreeRepoFinderMount @ {self:p}"))
1061            .finish()
1062    }
1063}
1064
1065#[repr(C)]
1066#[allow(dead_code)]
1067pub struct OstreeRepoFinderOverride {
1068    _data: [u8; 0],
1069    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1070}
1071
1072impl ::std::fmt::Debug for OstreeRepoFinderOverride {
1073    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1074        f.debug_struct(&format!("OstreeRepoFinderOverride @ {self:p}"))
1075            .finish()
1076    }
1077}
1078
1079#[repr(C)]
1080#[allow(dead_code)]
1081pub struct OstreeSePolicy {
1082    _data: [u8; 0],
1083    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1084}
1085
1086impl ::std::fmt::Debug for OstreeSePolicy {
1087    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1088        f.debug_struct(&format!("OstreeSePolicy @ {self:p}"))
1089            .finish()
1090    }
1091}
1092
1093#[repr(C)]
1094#[allow(dead_code)]
1095pub struct OstreeSysroot {
1096    _data: [u8; 0],
1097    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1098}
1099
1100impl ::std::fmt::Debug for OstreeSysroot {
1101    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1102        f.debug_struct(&format!("OstreeSysroot @ {self:p}"))
1103            .finish()
1104    }
1105}
1106
1107#[repr(C)]
1108#[allow(dead_code)]
1109pub struct OstreeSysrootUpgrader {
1110    _data: [u8; 0],
1111    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1112}
1113
1114impl ::std::fmt::Debug for OstreeSysrootUpgrader {
1115    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1116        f.debug_struct(&format!("OstreeSysrootUpgrader @ {self:p}"))
1117            .finish()
1118    }
1119}
1120
1121// Interfaces
1122#[repr(C)]
1123#[allow(dead_code)]
1124pub struct OstreeRepoFinder {
1125    _data: [u8; 0],
1126    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1127}
1128
1129impl ::std::fmt::Debug for OstreeRepoFinder {
1130    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1131        write!(f, "OstreeRepoFinder @ {self:p}")
1132    }
1133}
1134
1135#[repr(C)]
1136#[allow(dead_code)]
1137pub struct OstreeSign {
1138    _data: [u8; 0],
1139    _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1140}
1141
1142impl ::std::fmt::Debug for OstreeSign {
1143    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1144        write!(f, "OstreeSign @ {self:p}")
1145    }
1146}
1147
1148extern "C" {
1149
1150    //=========================================================================
1151    // OstreeSysrootUpgraderFlags
1152    //=========================================================================
1153    pub fn ostree_sysroot_upgrader_flags_get_type() -> GType;
1154
1155    //=========================================================================
1156    // OstreeCollectionRef
1157    //=========================================================================
1158    #[cfg(feature = "v2018_6")]
1159    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1160    pub fn ostree_collection_ref_get_type() -> GType;
1161    #[cfg(feature = "v2018_6")]
1162    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1163    pub fn ostree_collection_ref_new(
1164        collection_id: *const c_char,
1165        ref_name: *const c_char,
1166    ) -> *mut OstreeCollectionRef;
1167    #[cfg(feature = "v2018_6")]
1168    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1169    pub fn ostree_collection_ref_dup(ref_: *const OstreeCollectionRef) -> *mut OstreeCollectionRef;
1170    #[cfg(feature = "v2018_6")]
1171    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1172    pub fn ostree_collection_ref_equal(ref1: gconstpointer, ref2: gconstpointer) -> gboolean;
1173    #[cfg(feature = "v2018_6")]
1174    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1175    pub fn ostree_collection_ref_free(ref_: *mut OstreeCollectionRef);
1176    #[cfg(feature = "v2018_6")]
1177    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1178    pub fn ostree_collection_ref_hash(ref_: gconstpointer) -> c_uint;
1179    #[cfg(feature = "v2018_6")]
1180    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1181    pub fn ostree_collection_ref_dupv(
1182        refs: *const *const OstreeCollectionRef,
1183    ) -> *mut *mut OstreeCollectionRef;
1184    #[cfg(feature = "v2018_6")]
1185    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1186    pub fn ostree_collection_ref_freev(refs: *mut *mut OstreeCollectionRef);
1187
1188    //=========================================================================
1189    // OstreeCommitSizesEntry
1190    //=========================================================================
1191    #[cfg(feature = "v2020_1")]
1192    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_1")))]
1193    pub fn ostree_commit_sizes_entry_get_type() -> GType;
1194    #[cfg(feature = "v2020_1")]
1195    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_1")))]
1196    pub fn ostree_commit_sizes_entry_new(
1197        checksum: *const c_char,
1198        objtype: OstreeObjectType,
1199        unpacked: u64,
1200        archived: u64,
1201    ) -> *mut OstreeCommitSizesEntry;
1202    #[cfg(feature = "v2020_1")]
1203    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_1")))]
1204    pub fn ostree_commit_sizes_entry_copy(
1205        entry: *const OstreeCommitSizesEntry,
1206    ) -> *mut OstreeCommitSizesEntry;
1207    #[cfg(feature = "v2020_1")]
1208    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_1")))]
1209    pub fn ostree_commit_sizes_entry_free(entry: *mut OstreeCommitSizesEntry);
1210
1211    //=========================================================================
1212    // OstreeDiffItem
1213    //=========================================================================
1214    pub fn ostree_diff_item_get_type() -> GType;
1215    pub fn ostree_diff_item_ref(diffitem: *mut OstreeDiffItem) -> *mut OstreeDiffItem;
1216    pub fn ostree_diff_item_unref(diffitem: *mut OstreeDiffItem);
1217
1218    //=========================================================================
1219    // OstreeKernelArgs
1220    //=========================================================================
1221    #[cfg(feature = "v2019_3")]
1222    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1223    pub fn ostree_kernel_args_append(kargs: *mut OstreeKernelArgs, arg: *const c_char);
1224    #[cfg(feature = "v2019_3")]
1225    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1226    pub fn ostree_kernel_args_append_argv(kargs: *mut OstreeKernelArgs, argv: *mut *mut c_char);
1227    #[cfg(feature = "v2019_3")]
1228    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1229    pub fn ostree_kernel_args_append_argv_filtered(
1230        kargs: *mut OstreeKernelArgs,
1231        argv: *mut *mut c_char,
1232        prefixes: *mut *mut c_char,
1233    );
1234    #[cfg(feature = "v2022_5")]
1235    #[cfg_attr(docsrs, doc(cfg(feature = "v2022_5")))]
1236    pub fn ostree_kernel_args_append_if_missing(kargs: *mut OstreeKernelArgs, arg: *const c_char);
1237    #[cfg(feature = "v2019_3")]
1238    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1239    pub fn ostree_kernel_args_append_proc_cmdline(
1240        kargs: *mut OstreeKernelArgs,
1241        cancellable: *mut gio::GCancellable,
1242        error: *mut *mut glib::GError,
1243    ) -> gboolean;
1244    #[cfg(feature = "v2022_7")]
1245    #[cfg_attr(docsrs, doc(cfg(feature = "v2022_7")))]
1246    pub fn ostree_kernel_args_contains(
1247        kargs: *mut OstreeKernelArgs,
1248        arg: *const c_char,
1249    ) -> gboolean;
1250    pub fn ostree_kernel_args_delete(
1251        kargs: *mut OstreeKernelArgs,
1252        arg: *const c_char,
1253        error: *mut *mut glib::GError,
1254    ) -> gboolean;
1255    #[cfg(feature = "v2022_7")]
1256    #[cfg_attr(docsrs, doc(cfg(feature = "v2022_7")))]
1257    pub fn ostree_kernel_args_delete_if_present(
1258        kargs: *mut OstreeKernelArgs,
1259        arg: *const c_char,
1260        error: *mut *mut glib::GError,
1261    ) -> gboolean;
1262    #[cfg(feature = "v2019_3")]
1263    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1264    pub fn ostree_kernel_args_delete_key_entry(
1265        kargs: *mut OstreeKernelArgs,
1266        key: *const c_char,
1267        error: *mut *mut glib::GError,
1268    ) -> gboolean;
1269    #[cfg(feature = "v2019_3")]
1270    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1271    pub fn ostree_kernel_args_free(kargs: *mut OstreeKernelArgs);
1272    #[cfg(feature = "v2019_3")]
1273    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1274    pub fn ostree_kernel_args_get_last_value(
1275        kargs: *mut OstreeKernelArgs,
1276        key: *const c_char,
1277    ) -> *const c_char;
1278    #[cfg(feature = "v2019_3")]
1279    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1280    pub fn ostree_kernel_args_new_replace(
1281        kargs: *mut OstreeKernelArgs,
1282        arg: *const c_char,
1283        error: *mut *mut glib::GError,
1284    ) -> gboolean;
1285    #[cfg(feature = "v2019_3")]
1286    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1287    pub fn ostree_kernel_args_parse_append(kargs: *mut OstreeKernelArgs, options: *const c_char);
1288    #[cfg(feature = "v2019_3")]
1289    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1290    pub fn ostree_kernel_args_replace(kargs: *mut OstreeKernelArgs, arg: *const c_char);
1291    #[cfg(feature = "v2019_3")]
1292    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1293    pub fn ostree_kernel_args_replace_argv(kargs: *mut OstreeKernelArgs, argv: *mut *mut c_char);
1294    #[cfg(feature = "v2019_3")]
1295    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1296    pub fn ostree_kernel_args_replace_take(kargs: *mut OstreeKernelArgs, arg: *mut c_char);
1297    #[cfg(feature = "v2019_3")]
1298    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1299    pub fn ostree_kernel_args_to_string(kargs: *mut OstreeKernelArgs) -> *mut c_char;
1300    #[cfg(feature = "v2019_3")]
1301    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1302    pub fn ostree_kernel_args_to_strv(kargs: *mut OstreeKernelArgs) -> *mut *mut c_char;
1303    #[cfg(feature = "v2019_3")]
1304    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1305    pub fn ostree_kernel_args_cleanup(loc: *mut c_void);
1306    #[cfg(feature = "v2019_3")]
1307    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1308    pub fn ostree_kernel_args_from_string(options: *const c_char) -> *mut OstreeKernelArgs;
1309    #[cfg(feature = "v2019_3")]
1310    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_3")))]
1311    pub fn ostree_kernel_args_new() -> *mut OstreeKernelArgs;
1312
1313    //=========================================================================
1314    // OstreeRemote
1315    //=========================================================================
1316    #[cfg(feature = "v2018_6")]
1317    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1318    pub fn ostree_remote_get_type() -> GType;
1319    #[cfg(feature = "v2018_6")]
1320    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1321    pub fn ostree_remote_get_name(remote: *mut OstreeRemote) -> *const c_char;
1322    #[cfg(feature = "v2018_6")]
1323    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1324    pub fn ostree_remote_get_url(remote: *mut OstreeRemote) -> *mut c_char;
1325    #[cfg(feature = "v2018_6")]
1326    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1327    pub fn ostree_remote_ref(remote: *mut OstreeRemote) -> *mut OstreeRemote;
1328    #[cfg(feature = "v2018_6")]
1329    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1330    pub fn ostree_remote_unref(remote: *mut OstreeRemote);
1331
1332    //=========================================================================
1333    // OstreeRepoCheckoutAtOptions
1334    //=========================================================================
1335    #[cfg(feature = "v2017_13")]
1336    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_13")))]
1337    pub fn ostree_repo_checkout_at_options_set_devino(
1338        opts: *mut OstreeRepoCheckoutAtOptions,
1339        cache: *mut OstreeRepoDevInoCache,
1340    );
1341
1342    //=========================================================================
1343    // OstreeRepoCommitModifier
1344    //=========================================================================
1345    pub fn ostree_repo_commit_modifier_get_type() -> GType;
1346    pub fn ostree_repo_commit_modifier_new(
1347        flags: OstreeRepoCommitModifierFlags,
1348        commit_filter: OstreeRepoCommitFilter,
1349        user_data: gpointer,
1350        destroy_notify: glib::GDestroyNotify,
1351    ) -> *mut OstreeRepoCommitModifier;
1352    pub fn ostree_repo_commit_modifier_ref(
1353        modifier: *mut OstreeRepoCommitModifier,
1354    ) -> *mut OstreeRepoCommitModifier;
1355    #[cfg(feature = "v2017_13")]
1356    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_13")))]
1357    pub fn ostree_repo_commit_modifier_set_devino_cache(
1358        modifier: *mut OstreeRepoCommitModifier,
1359        cache: *mut OstreeRepoDevInoCache,
1360    );
1361    pub fn ostree_repo_commit_modifier_set_sepolicy(
1362        modifier: *mut OstreeRepoCommitModifier,
1363        sepolicy: *mut OstreeSePolicy,
1364    );
1365    #[cfg(feature = "v2020_4")]
1366    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_4")))]
1367    pub fn ostree_repo_commit_modifier_set_sepolicy_from_commit(
1368        modifier: *mut OstreeRepoCommitModifier,
1369        repo: *mut OstreeRepo,
1370        rev: *const c_char,
1371        cancellable: *mut gio::GCancellable,
1372        error: *mut *mut glib::GError,
1373    ) -> gboolean;
1374    pub fn ostree_repo_commit_modifier_set_xattr_callback(
1375        modifier: *mut OstreeRepoCommitModifier,
1376        callback: OstreeRepoCommitModifierXattrCallback,
1377        destroy: glib::GDestroyNotify,
1378        user_data: gpointer,
1379    );
1380    pub fn ostree_repo_commit_modifier_unref(modifier: *mut OstreeRepoCommitModifier);
1381
1382    //=========================================================================
1383    // OstreeRepoCommitTraverseIter
1384    //=========================================================================
1385    pub fn ostree_repo_commit_traverse_iter_clear(iter: *mut OstreeRepoCommitTraverseIter);
1386    pub fn ostree_repo_commit_traverse_iter_get_dir(
1387        iter: *mut OstreeRepoCommitTraverseIter,
1388        out_name: *mut *mut c_char,
1389        out_content_checksum: *mut *mut c_char,
1390        out_meta_checksum: *mut *mut c_char,
1391    );
1392    pub fn ostree_repo_commit_traverse_iter_get_file(
1393        iter: *mut OstreeRepoCommitTraverseIter,
1394        out_name: *mut *mut c_char,
1395        out_checksum: *mut *mut c_char,
1396    );
1397    pub fn ostree_repo_commit_traverse_iter_init_commit(
1398        iter: *mut OstreeRepoCommitTraverseIter,
1399        repo: *mut OstreeRepo,
1400        commit: *mut glib::GVariant,
1401        flags: OstreeRepoCommitTraverseFlags,
1402        error: *mut *mut glib::GError,
1403    ) -> gboolean;
1404    pub fn ostree_repo_commit_traverse_iter_init_dirtree(
1405        iter: *mut OstreeRepoCommitTraverseIter,
1406        repo: *mut OstreeRepo,
1407        dirtree: *mut glib::GVariant,
1408        flags: OstreeRepoCommitTraverseFlags,
1409        error: *mut *mut glib::GError,
1410    ) -> gboolean;
1411    pub fn ostree_repo_commit_traverse_iter_next(
1412        iter: *mut OstreeRepoCommitTraverseIter,
1413        cancellable: *mut gio::GCancellable,
1414        error: *mut *mut glib::GError,
1415    ) -> OstreeRepoCommitIterResult;
1416    pub fn ostree_repo_commit_traverse_iter_cleanup(p: *mut c_void);
1417
1418    //=========================================================================
1419    // OstreeRepoDevInoCache
1420    //=========================================================================
1421    pub fn ostree_repo_devino_cache_get_type() -> GType;
1422    pub fn ostree_repo_devino_cache_new() -> *mut OstreeRepoDevInoCache;
1423    pub fn ostree_repo_devino_cache_ref(
1424        cache: *mut OstreeRepoDevInoCache,
1425    ) -> *mut OstreeRepoDevInoCache;
1426    pub fn ostree_repo_devino_cache_unref(cache: *mut OstreeRepoDevInoCache);
1427
1428    //=========================================================================
1429    // OstreeRepoFinderResult
1430    //=========================================================================
1431    #[cfg(feature = "v2018_6")]
1432    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1433    pub fn ostree_repo_finder_result_get_type() -> GType;
1434    #[cfg(feature = "v2018_6")]
1435    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1436    pub fn ostree_repo_finder_result_new(
1437        remote: *mut OstreeRemote,
1438        finder: *mut OstreeRepoFinder,
1439        priority: c_int,
1440        ref_to_checksum: *mut glib::GHashTable,
1441        ref_to_timestamp: *mut glib::GHashTable,
1442        summary_last_modified: u64,
1443    ) -> *mut OstreeRepoFinderResult;
1444    #[cfg(feature = "v2018_6")]
1445    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1446    pub fn ostree_repo_finder_result_compare(
1447        a: *const OstreeRepoFinderResult,
1448        b: *const OstreeRepoFinderResult,
1449    ) -> c_int;
1450    #[cfg(feature = "v2018_6")]
1451    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1452    pub fn ostree_repo_finder_result_dup(
1453        result: *mut OstreeRepoFinderResult,
1454    ) -> *mut OstreeRepoFinderResult;
1455    #[cfg(feature = "v2018_6")]
1456    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1457    pub fn ostree_repo_finder_result_free(result: *mut OstreeRepoFinderResult);
1458    #[cfg(feature = "v2018_6")]
1459    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1460    pub fn ostree_repo_finder_result_freev(results: *mut *mut OstreeRepoFinderResult);
1461
1462    //=========================================================================
1463    // OstreeRepoTransactionStats
1464    //=========================================================================
1465    pub fn ostree_repo_transaction_stats_get_type() -> GType;
1466
1467    //=========================================================================
1468    // OstreeAsyncProgress
1469    //=========================================================================
1470    pub fn ostree_async_progress_get_type() -> GType;
1471    pub fn ostree_async_progress_new() -> *mut OstreeAsyncProgress;
1472    pub fn ostree_async_progress_new_and_connect(
1473        changed: *mut gpointer,
1474        user_data: gpointer,
1475    ) -> *mut OstreeAsyncProgress;
1476    #[cfg(feature = "v2019_6")]
1477    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_6")))]
1478    pub fn ostree_async_progress_copy_state(
1479        self_: *mut OstreeAsyncProgress,
1480        dest: *mut OstreeAsyncProgress,
1481    );
1482    pub fn ostree_async_progress_finish(self_: *mut OstreeAsyncProgress);
1483    #[cfg(feature = "v2017_6")]
1484    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_6")))]
1485    pub fn ostree_async_progress_get(self_: *mut OstreeAsyncProgress, ...);
1486    #[cfg(feature = "v2017_6")]
1487    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_6")))]
1488    pub fn ostree_async_progress_get_status(self_: *mut OstreeAsyncProgress) -> *mut c_char;
1489    pub fn ostree_async_progress_get_uint(
1490        self_: *mut OstreeAsyncProgress,
1491        key: *const c_char,
1492    ) -> c_uint;
1493    pub fn ostree_async_progress_get_uint64(
1494        self_: *mut OstreeAsyncProgress,
1495        key: *const c_char,
1496    ) -> u64;
1497    #[cfg(feature = "v2017_6")]
1498    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_6")))]
1499    pub fn ostree_async_progress_get_variant(
1500        self_: *mut OstreeAsyncProgress,
1501        key: *const c_char,
1502    ) -> *mut glib::GVariant;
1503    #[cfg(feature = "v2017_6")]
1504    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_6")))]
1505    pub fn ostree_async_progress_set(self_: *mut OstreeAsyncProgress, ...);
1506    #[cfg(feature = "v2017_6")]
1507    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_6")))]
1508    pub fn ostree_async_progress_set_status(self_: *mut OstreeAsyncProgress, status: *const c_char);
1509    pub fn ostree_async_progress_set_uint(
1510        self_: *mut OstreeAsyncProgress,
1511        key: *const c_char,
1512        value: c_uint,
1513    );
1514    pub fn ostree_async_progress_set_uint64(
1515        self_: *mut OstreeAsyncProgress,
1516        key: *const c_char,
1517        value: u64,
1518    );
1519    #[cfg(feature = "v2017_6")]
1520    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_6")))]
1521    pub fn ostree_async_progress_set_variant(
1522        self_: *mut OstreeAsyncProgress,
1523        key: *const c_char,
1524        value: *mut glib::GVariant,
1525    );
1526
1527    //=========================================================================
1528    // OstreeBootconfigParser
1529    //=========================================================================
1530    pub fn ostree_bootconfig_parser_get_type() -> GType;
1531    pub fn ostree_bootconfig_parser_new() -> *mut OstreeBootconfigParser;
1532    pub fn ostree_bootconfig_parser_clone(
1533        self_: *mut OstreeBootconfigParser,
1534    ) -> *mut OstreeBootconfigParser;
1535    pub fn ostree_bootconfig_parser_get(
1536        self_: *mut OstreeBootconfigParser,
1537        key: *const c_char,
1538    ) -> *const c_char;
1539    #[cfg(feature = "v2020_7")]
1540    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_7")))]
1541    pub fn ostree_bootconfig_parser_get_overlay_initrds(
1542        self_: *mut OstreeBootconfigParser,
1543    ) -> *mut *mut c_char;
1544    pub fn ostree_bootconfig_parser_parse(
1545        self_: *mut OstreeBootconfigParser,
1546        path: *mut gio::GFile,
1547        cancellable: *mut gio::GCancellable,
1548        error: *mut *mut glib::GError,
1549    ) -> gboolean;
1550    pub fn ostree_bootconfig_parser_parse_at(
1551        self_: *mut OstreeBootconfigParser,
1552        dfd: c_int,
1553        path: *const c_char,
1554        cancellable: *mut gio::GCancellable,
1555        error: *mut *mut glib::GError,
1556    ) -> gboolean;
1557    pub fn ostree_bootconfig_parser_set(
1558        self_: *mut OstreeBootconfigParser,
1559        key: *const c_char,
1560        value: *const c_char,
1561    );
1562    #[cfg(feature = "v2020_7")]
1563    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_7")))]
1564    pub fn ostree_bootconfig_parser_set_overlay_initrds(
1565        self_: *mut OstreeBootconfigParser,
1566        initrds: *mut *mut c_char,
1567    );
1568    pub fn ostree_bootconfig_parser_write(
1569        self_: *mut OstreeBootconfigParser,
1570        output: *mut gio::GFile,
1571        cancellable: *mut gio::GCancellable,
1572        error: *mut *mut glib::GError,
1573    ) -> gboolean;
1574    pub fn ostree_bootconfig_parser_write_at(
1575        self_: *mut OstreeBootconfigParser,
1576        dfd: c_int,
1577        path: *const c_char,
1578        cancellable: *mut gio::GCancellable,
1579        error: *mut *mut glib::GError,
1580    ) -> gboolean;
1581
1582    //=========================================================================
1583    // OstreeContentWriter
1584    //=========================================================================
1585    pub fn ostree_content_writer_get_type() -> GType;
1586    pub fn ostree_content_writer_finish(
1587        self_: *mut OstreeContentWriter,
1588        cancellable: *mut gio::GCancellable,
1589        error: *mut *mut glib::GError,
1590    ) -> *mut c_char;
1591
1592    //=========================================================================
1593    // OstreeDeployment
1594    //=========================================================================
1595    pub fn ostree_deployment_get_type() -> GType;
1596    pub fn ostree_deployment_new(
1597        index: c_int,
1598        osname: *const c_char,
1599        csum: *const c_char,
1600        deployserial: c_int,
1601        bootcsum: *const c_char,
1602        bootserial: c_int,
1603    ) -> *mut OstreeDeployment;
1604    #[cfg(feature = "v2018_3")]
1605    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_3")))]
1606    pub fn ostree_deployment_origin_remove_transient_state(origin: *mut glib::GKeyFile);
1607    #[cfg(feature = "v2016_4")]
1608    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_4")))]
1609    pub fn ostree_deployment_unlocked_state_to_string(
1610        state: OstreeDeploymentUnlockedState,
1611    ) -> *const c_char;
1612    pub fn ostree_deployment_clone(self_: *mut OstreeDeployment) -> *mut OstreeDeployment;
1613    pub fn ostree_deployment_equal(ap: gconstpointer, bp: gconstpointer) -> gboolean;
1614    pub fn ostree_deployment_get_bootconfig(
1615        self_: *mut OstreeDeployment,
1616    ) -> *mut OstreeBootconfigParser;
1617    pub fn ostree_deployment_get_bootcsum(self_: *mut OstreeDeployment) -> *const c_char;
1618    pub fn ostree_deployment_get_bootserial(self_: *mut OstreeDeployment) -> c_int;
1619    pub fn ostree_deployment_get_csum(self_: *mut OstreeDeployment) -> *const c_char;
1620    pub fn ostree_deployment_get_deployserial(self_: *mut OstreeDeployment) -> c_int;
1621    pub fn ostree_deployment_get_index(self_: *mut OstreeDeployment) -> c_int;
1622    pub fn ostree_deployment_get_origin(self_: *mut OstreeDeployment) -> *mut glib::GKeyFile;
1623    pub fn ostree_deployment_get_origin_relpath(self_: *mut OstreeDeployment) -> *mut c_char;
1624    pub fn ostree_deployment_get_osname(self_: *mut OstreeDeployment) -> *const c_char;
1625    #[cfg(feature = "v2016_4")]
1626    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_4")))]
1627    pub fn ostree_deployment_get_unlocked(
1628        self_: *mut OstreeDeployment,
1629    ) -> OstreeDeploymentUnlockedState;
1630    pub fn ostree_deployment_hash(v: gconstpointer) -> c_uint;
1631    #[cfg(feature = "v2023_8")]
1632    #[cfg_attr(docsrs, doc(cfg(feature = "v2023_8")))]
1633    pub fn ostree_deployment_is_finalization_locked(self_: *mut OstreeDeployment) -> gboolean;
1634    #[cfg(feature = "v2018_3")]
1635    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_3")))]
1636    pub fn ostree_deployment_is_pinned(self_: *mut OstreeDeployment) -> gboolean;
1637    #[cfg(feature = "v2018_3")]
1638    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_3")))]
1639    pub fn ostree_deployment_is_staged(self_: *mut OstreeDeployment) -> gboolean;
1640    pub fn ostree_deployment_set_bootconfig(
1641        self_: *mut OstreeDeployment,
1642        bootconfig: *mut OstreeBootconfigParser,
1643    );
1644    pub fn ostree_deployment_set_bootserial(self_: *mut OstreeDeployment, index: c_int);
1645    pub fn ostree_deployment_set_index(self_: *mut OstreeDeployment, index: c_int);
1646    pub fn ostree_deployment_set_origin(self_: *mut OstreeDeployment, origin: *mut glib::GKeyFile);
1647
1648    //=========================================================================
1649    // OstreeGpgVerifyResult
1650    //=========================================================================
1651    pub fn ostree_gpg_verify_result_get_type() -> GType;
1652    pub fn ostree_gpg_verify_result_describe_variant(
1653        variant: *mut glib::GVariant,
1654        output_buffer: *mut glib::GString,
1655        line_prefix: *const c_char,
1656        flags: OstreeGpgSignatureFormatFlags,
1657    );
1658    pub fn ostree_gpg_verify_result_count_all(result: *mut OstreeGpgVerifyResult) -> c_uint;
1659    pub fn ostree_gpg_verify_result_count_valid(result: *mut OstreeGpgVerifyResult) -> c_uint;
1660    pub fn ostree_gpg_verify_result_describe(
1661        result: *mut OstreeGpgVerifyResult,
1662        signature_index: c_uint,
1663        output_buffer: *mut glib::GString,
1664        line_prefix: *const c_char,
1665        flags: OstreeGpgSignatureFormatFlags,
1666    );
1667    pub fn ostree_gpg_verify_result_get(
1668        result: *mut OstreeGpgVerifyResult,
1669        signature_index: c_uint,
1670        attrs: *mut OstreeGpgSignatureAttr,
1671        n_attrs: c_uint,
1672    ) -> *mut glib::GVariant;
1673    pub fn ostree_gpg_verify_result_get_all(
1674        result: *mut OstreeGpgVerifyResult,
1675        signature_index: c_uint,
1676    ) -> *mut glib::GVariant;
1677    pub fn ostree_gpg_verify_result_lookup(
1678        result: *mut OstreeGpgVerifyResult,
1679        key_id: *const c_char,
1680        out_signature_index: *mut c_uint,
1681    ) -> gboolean;
1682    #[cfg(feature = "v2016_6")]
1683    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_6")))]
1684    pub fn ostree_gpg_verify_result_require_valid_signature(
1685        result: *mut OstreeGpgVerifyResult,
1686        error: *mut *mut glib::GError,
1687    ) -> gboolean;
1688
1689    //=========================================================================
1690    // OstreeMutableTree
1691    //=========================================================================
1692    pub fn ostree_mutable_tree_get_type() -> GType;
1693    pub fn ostree_mutable_tree_new() -> *mut OstreeMutableTree;
1694    #[cfg(feature = "v2018_7")]
1695    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_7")))]
1696    pub fn ostree_mutable_tree_new_from_checksum(
1697        repo: *mut OstreeRepo,
1698        contents_checksum: *const c_char,
1699        metadata_checksum: *const c_char,
1700    ) -> *mut OstreeMutableTree;
1701    #[cfg(feature = "v2021_5")]
1702    #[cfg_attr(docsrs, doc(cfg(feature = "v2021_5")))]
1703    pub fn ostree_mutable_tree_new_from_commit(
1704        repo: *mut OstreeRepo,
1705        rev: *const c_char,
1706        error: *mut *mut glib::GError,
1707    ) -> *mut OstreeMutableTree;
1708    #[cfg(feature = "v2018_7")]
1709    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_7")))]
1710    pub fn ostree_mutable_tree_check_error(
1711        self_: *mut OstreeMutableTree,
1712        error: *mut *mut glib::GError,
1713    ) -> gboolean;
1714    pub fn ostree_mutable_tree_ensure_dir(
1715        self_: *mut OstreeMutableTree,
1716        name: *const c_char,
1717        out_subdir: *mut *mut OstreeMutableTree,
1718        error: *mut *mut glib::GError,
1719    ) -> gboolean;
1720    pub fn ostree_mutable_tree_ensure_parent_dirs(
1721        self_: *mut OstreeMutableTree,
1722        split_path: *mut glib::GPtrArray,
1723        metadata_checksum: *const c_char,
1724        out_parent: *mut *mut OstreeMutableTree,
1725        error: *mut *mut glib::GError,
1726    ) -> gboolean;
1727    #[cfg(feature = "v2018_7")]
1728    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_7")))]
1729    pub fn ostree_mutable_tree_fill_empty_from_dirtree(
1730        self_: *mut OstreeMutableTree,
1731        repo: *mut OstreeRepo,
1732        contents_checksum: *const c_char,
1733        metadata_checksum: *const c_char,
1734    ) -> gboolean;
1735    pub fn ostree_mutable_tree_get_contents_checksum(
1736        self_: *mut OstreeMutableTree,
1737    ) -> *const c_char;
1738    pub fn ostree_mutable_tree_get_files(self_: *mut OstreeMutableTree) -> *mut glib::GHashTable;
1739    pub fn ostree_mutable_tree_get_metadata_checksum(
1740        self_: *mut OstreeMutableTree,
1741    ) -> *const c_char;
1742    pub fn ostree_mutable_tree_get_subdirs(self_: *mut OstreeMutableTree) -> *mut glib::GHashTable;
1743    pub fn ostree_mutable_tree_lookup(
1744        self_: *mut OstreeMutableTree,
1745        name: *const c_char,
1746        out_file_checksum: *mut *mut c_char,
1747        out_subdir: *mut *mut OstreeMutableTree,
1748        error: *mut *mut glib::GError,
1749    ) -> gboolean;
1750    #[cfg(feature = "v2018_9")]
1751    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_9")))]
1752    pub fn ostree_mutable_tree_remove(
1753        self_: *mut OstreeMutableTree,
1754        name: *const c_char,
1755        allow_noent: gboolean,
1756        error: *mut *mut glib::GError,
1757    ) -> gboolean;
1758    pub fn ostree_mutable_tree_replace_file(
1759        self_: *mut OstreeMutableTree,
1760        name: *const c_char,
1761        checksum: *const c_char,
1762        error: *mut *mut glib::GError,
1763    ) -> gboolean;
1764    pub fn ostree_mutable_tree_set_contents_checksum(
1765        self_: *mut OstreeMutableTree,
1766        checksum: *const c_char,
1767    );
1768    pub fn ostree_mutable_tree_set_metadata_checksum(
1769        self_: *mut OstreeMutableTree,
1770        checksum: *const c_char,
1771    );
1772    pub fn ostree_mutable_tree_walk(
1773        self_: *mut OstreeMutableTree,
1774        split_path: *mut glib::GPtrArray,
1775        start: c_uint,
1776        out_subdir: *mut *mut OstreeMutableTree,
1777        error: *mut *mut glib::GError,
1778    ) -> gboolean;
1779
1780    //=========================================================================
1781    // OstreeRepo
1782    //=========================================================================
1783    pub fn ostree_repo_get_type() -> GType;
1784    pub fn ostree_repo_new(path: *mut gio::GFile) -> *mut OstreeRepo;
1785    pub fn ostree_repo_new_default() -> *mut OstreeRepo;
1786    pub fn ostree_repo_new_for_sysroot_path(
1787        repo_path: *mut gio::GFile,
1788        sysroot_path: *mut gio::GFile,
1789    ) -> *mut OstreeRepo;
1790    #[cfg(feature = "v2017_10")]
1791    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_10")))]
1792    pub fn ostree_repo_create_at(
1793        dfd: c_int,
1794        path: *const c_char,
1795        mode: OstreeRepoMode,
1796        options: *mut glib::GVariant,
1797        cancellable: *mut gio::GCancellable,
1798        error: *mut *mut glib::GError,
1799    ) -> *mut OstreeRepo;
1800    pub fn ostree_repo_mode_from_string(
1801        mode: *const c_char,
1802        out_mode: *mut OstreeRepoMode,
1803        error: *mut *mut glib::GError,
1804    ) -> gboolean;
1805    #[cfg(feature = "v2017_10")]
1806    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_10")))]
1807    pub fn ostree_repo_open_at(
1808        dfd: c_int,
1809        path: *const c_char,
1810        cancellable: *mut gio::GCancellable,
1811        error: *mut *mut glib::GError,
1812    ) -> *mut OstreeRepo;
1813    pub fn ostree_repo_pull_default_console_progress_changed(
1814        progress: *mut OstreeAsyncProgress,
1815        user_data: gpointer,
1816    );
1817    #[cfg(feature = "v2018_5")]
1818    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_5")))]
1819    pub fn ostree_repo_traverse_new_parents() -> *mut glib::GHashTable;
1820    pub fn ostree_repo_traverse_new_reachable() -> *mut glib::GHashTable;
1821    #[cfg(feature = "v2018_5")]
1822    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_5")))]
1823    pub fn ostree_repo_traverse_parents_get_commits(
1824        parents: *mut glib::GHashTable,
1825        object: *mut glib::GVariant,
1826    ) -> *mut *mut c_char;
1827    pub fn ostree_repo_abort_transaction(
1828        self_: *mut OstreeRepo,
1829        cancellable: *mut gio::GCancellable,
1830        error: *mut *mut glib::GError,
1831    ) -> gboolean;
1832    pub fn ostree_repo_add_gpg_signature_summary(
1833        self_: *mut OstreeRepo,
1834        key_id: *mut *const c_char,
1835        homedir: *const c_char,
1836        cancellable: *mut gio::GCancellable,
1837        error: *mut *mut glib::GError,
1838    ) -> gboolean;
1839    pub fn ostree_repo_append_gpg_signature(
1840        self_: *mut OstreeRepo,
1841        commit_checksum: *const c_char,
1842        signature_bytes: *mut glib::GBytes,
1843        cancellable: *mut gio::GCancellable,
1844        error: *mut *mut glib::GError,
1845    ) -> gboolean;
1846    #[cfg(feature = "v2016_8")]
1847    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_8")))]
1848    pub fn ostree_repo_checkout_at(
1849        self_: *mut OstreeRepo,
1850        options: *mut OstreeRepoCheckoutAtOptions,
1851        destination_dfd: c_int,
1852        destination_path: *const c_char,
1853        commit: *const c_char,
1854        cancellable: *mut gio::GCancellable,
1855        error: *mut *mut glib::GError,
1856    ) -> gboolean;
1857    #[cfg(feature = "v2024_7")]
1858    #[cfg_attr(docsrs, doc(cfg(feature = "v2024_7")))]
1859    pub fn ostree_repo_checkout_composefs(
1860        self_: *mut OstreeRepo,
1861        options: *mut glib::GVariant,
1862        destination_dfd: c_int,
1863        destination_path: *const c_char,
1864        checksum: *const c_char,
1865        cancellable: *mut gio::GCancellable,
1866        error: *mut *mut glib::GError,
1867    ) -> gboolean;
1868    pub fn ostree_repo_checkout_gc(
1869        self_: *mut OstreeRepo,
1870        cancellable: *mut gio::GCancellable,
1871        error: *mut *mut glib::GError,
1872    ) -> gboolean;
1873    pub fn ostree_repo_checkout_tree(
1874        self_: *mut OstreeRepo,
1875        mode: OstreeRepoCheckoutMode,
1876        overwrite_mode: OstreeRepoCheckoutOverwriteMode,
1877        destination: *mut gio::GFile,
1878        source: *mut OstreeRepoFile,
1879        source_info: *mut gio::GFileInfo,
1880        cancellable: *mut gio::GCancellable,
1881        error: *mut *mut glib::GError,
1882    ) -> gboolean;
1883    pub fn ostree_repo_checkout_tree_at(
1884        self_: *mut OstreeRepo,
1885        options: *mut OstreeRepoCheckoutOptions,
1886        destination_dfd: c_int,
1887        destination_path: *const c_char,
1888        commit: *const c_char,
1889        cancellable: *mut gio::GCancellable,
1890        error: *mut *mut glib::GError,
1891    ) -> gboolean;
1892    pub fn ostree_repo_commit_add_composefs_metadata(
1893        self_: *mut OstreeRepo,
1894        format_version: c_uint,
1895        dict: *mut glib::GVariantDict,
1896        repo_root: *mut OstreeRepoFile,
1897        cancellable: *mut gio::GCancellable,
1898        error: *mut *mut glib::GError,
1899    ) -> gboolean;
1900    pub fn ostree_repo_commit_transaction(
1901        self_: *mut OstreeRepo,
1902        out_stats: *mut OstreeRepoTransactionStats,
1903        cancellable: *mut gio::GCancellable,
1904        error: *mut *mut glib::GError,
1905    ) -> gboolean;
1906    pub fn ostree_repo_copy_config(self_: *mut OstreeRepo) -> *mut glib::GKeyFile;
1907    pub fn ostree_repo_create(
1908        self_: *mut OstreeRepo,
1909        mode: OstreeRepoMode,
1910        cancellable: *mut gio::GCancellable,
1911        error: *mut *mut glib::GError,
1912    ) -> gboolean;
1913    pub fn ostree_repo_delete_object(
1914        self_: *mut OstreeRepo,
1915        objtype: OstreeObjectType,
1916        sha256: *const c_char,
1917        cancellable: *mut gio::GCancellable,
1918        error: *mut *mut glib::GError,
1919    ) -> gboolean;
1920    #[cfg(feature = "v2017_12")]
1921    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_12")))]
1922    pub fn ostree_repo_equal(a: *mut OstreeRepo, b: *mut OstreeRepo) -> gboolean;
1923    pub fn ostree_repo_export_tree_to_archive(
1924        self_: *mut OstreeRepo,
1925        opts: *mut OstreeRepoExportArchiveOptions,
1926        root: *mut OstreeRepoFile,
1927        archive: *mut c_void,
1928        cancellable: *mut gio::GCancellable,
1929        error: *mut *mut glib::GError,
1930    ) -> gboolean;
1931    #[cfg(feature = "v2018_6")]
1932    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1933    pub fn ostree_repo_find_remotes_async(
1934        self_: *mut OstreeRepo,
1935        refs: *const *const OstreeCollectionRef,
1936        options: *mut glib::GVariant,
1937        finders: *mut *mut OstreeRepoFinder,
1938        progress: *mut OstreeAsyncProgress,
1939        cancellable: *mut gio::GCancellable,
1940        callback: gio::GAsyncReadyCallback,
1941        user_data: gpointer,
1942    );
1943    #[cfg(feature = "v2018_6")]
1944    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1945    pub fn ostree_repo_find_remotes_finish(
1946        self_: *mut OstreeRepo,
1947        result: *mut gio::GAsyncResult,
1948        error: *mut *mut glib::GError,
1949    ) -> *mut *mut OstreeRepoFinderResult;
1950    #[cfg(feature = "v2017_15")]
1951    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_15")))]
1952    pub fn ostree_repo_fsck_object(
1953        self_: *mut OstreeRepo,
1954        objtype: OstreeObjectType,
1955        sha256: *const c_char,
1956        cancellable: *mut gio::GCancellable,
1957        error: *mut *mut glib::GError,
1958    ) -> gboolean;
1959    #[cfg(feature = "v2019_2")]
1960    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_2")))]
1961    pub fn ostree_repo_get_bootloader(self_: *mut OstreeRepo) -> *const c_char;
1962    #[cfg(feature = "v2018_6")]
1963    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
1964    pub fn ostree_repo_get_collection_id(self_: *mut OstreeRepo) -> *const c_char;
1965    pub fn ostree_repo_get_config(self_: *mut OstreeRepo) -> *mut glib::GKeyFile;
1966    #[cfg(feature = "v2018_9")]
1967    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_9")))]
1968    pub fn ostree_repo_get_default_repo_finders(self_: *mut OstreeRepo) -> *const *const c_char;
1969    #[cfg(feature = "v2016_4")]
1970    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_4")))]
1971    pub fn ostree_repo_get_dfd(self_: *mut OstreeRepo) -> c_int;
1972    pub fn ostree_repo_get_disable_fsync(self_: *mut OstreeRepo) -> gboolean;
1973    #[cfg(feature = "v2018_9")]
1974    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_9")))]
1975    pub fn ostree_repo_get_min_free_space_bytes(
1976        self_: *mut OstreeRepo,
1977        out_reserved_bytes: *mut u64,
1978        error: *mut *mut glib::GError,
1979    ) -> gboolean;
1980    pub fn ostree_repo_get_mode(self_: *mut OstreeRepo) -> OstreeRepoMode;
1981    pub fn ostree_repo_get_parent(self_: *mut OstreeRepo) -> *mut OstreeRepo;
1982    pub fn ostree_repo_get_path(self_: *mut OstreeRepo) -> *mut gio::GFile;
1983    #[cfg(feature = "v2016_5")]
1984    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_5")))]
1985    pub fn ostree_repo_get_remote_boolean_option(
1986        self_: *mut OstreeRepo,
1987        remote_name: *const c_char,
1988        option_name: *const c_char,
1989        default_value: gboolean,
1990        out_value: *mut gboolean,
1991        error: *mut *mut glib::GError,
1992    ) -> gboolean;
1993    #[cfg(feature = "v2016_5")]
1994    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_5")))]
1995    pub fn ostree_repo_get_remote_list_option(
1996        self_: *mut OstreeRepo,
1997        remote_name: *const c_char,
1998        option_name: *const c_char,
1999        out_value: *mut *mut *mut c_char,
2000        error: *mut *mut glib::GError,
2001    ) -> gboolean;
2002    #[cfg(feature = "v2016_5")]
2003    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_5")))]
2004    pub fn ostree_repo_get_remote_option(
2005        self_: *mut OstreeRepo,
2006        remote_name: *const c_char,
2007        option_name: *const c_char,
2008        default_value: *const c_char,
2009        out_value: *mut *mut c_char,
2010        error: *mut *mut glib::GError,
2011    ) -> gboolean;
2012    #[cfg(feature = "v2020_8")]
2013    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_8")))]
2014    pub fn ostree_repo_gpg_sign_data(
2015        self_: *mut OstreeRepo,
2016        data: *mut glib::GBytes,
2017        old_signatures: *mut glib::GBytes,
2018        key_id: *mut *const c_char,
2019        homedir: *const c_char,
2020        out_signatures: *mut *mut glib::GBytes,
2021        cancellable: *mut gio::GCancellable,
2022        error: *mut *mut glib::GError,
2023    ) -> gboolean;
2024    #[cfg(feature = "v2016_6")]
2025    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_6")))]
2026    pub fn ostree_repo_gpg_verify_data(
2027        self_: *mut OstreeRepo,
2028        remote_name: *const c_char,
2029        data: *mut glib::GBytes,
2030        signatures: *mut glib::GBytes,
2031        keyringdir: *mut gio::GFile,
2032        extra_keyring: *mut gio::GFile,
2033        cancellable: *mut gio::GCancellable,
2034        error: *mut *mut glib::GError,
2035    ) -> *mut OstreeGpgVerifyResult;
2036    pub fn ostree_repo_has_object(
2037        self_: *mut OstreeRepo,
2038        objtype: OstreeObjectType,
2039        checksum: *const c_char,
2040        out_have_object: *mut gboolean,
2041        cancellable: *mut gio::GCancellable,
2042        error: *mut *mut glib::GError,
2043    ) -> gboolean;
2044    #[cfg(feature = "v2017_12")]
2045    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_12")))]
2046    pub fn ostree_repo_hash(self_: *mut OstreeRepo) -> c_uint;
2047    pub fn ostree_repo_import_archive_to_mtree(
2048        self_: *mut OstreeRepo,
2049        opts: *mut OstreeRepoImportArchiveOptions,
2050        archive: *mut c_void,
2051        mtree: *mut OstreeMutableTree,
2052        modifier: *mut OstreeRepoCommitModifier,
2053        cancellable: *mut gio::GCancellable,
2054        error: *mut *mut glib::GError,
2055    ) -> gboolean;
2056    pub fn ostree_repo_import_object_from(
2057        self_: *mut OstreeRepo,
2058        source: *mut OstreeRepo,
2059        objtype: OstreeObjectType,
2060        checksum: *const c_char,
2061        cancellable: *mut gio::GCancellable,
2062        error: *mut *mut glib::GError,
2063    ) -> gboolean;
2064    #[cfg(feature = "v2016_5")]
2065    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_5")))]
2066    pub fn ostree_repo_import_object_from_with_trust(
2067        self_: *mut OstreeRepo,
2068        source: *mut OstreeRepo,
2069        objtype: OstreeObjectType,
2070        checksum: *const c_char,
2071        trusted: gboolean,
2072        cancellable: *mut gio::GCancellable,
2073        error: *mut *mut glib::GError,
2074    ) -> gboolean;
2075    pub fn ostree_repo_is_system(repo: *mut OstreeRepo) -> gboolean;
2076    pub fn ostree_repo_is_writable(
2077        self_: *mut OstreeRepo,
2078        error: *mut *mut glib::GError,
2079    ) -> gboolean;
2080    #[cfg(feature = "v2018_6")]
2081    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2082    pub fn ostree_repo_list_collection_refs(
2083        self_: *mut OstreeRepo,
2084        match_collection_id: *const c_char,
2085        out_all_refs: *mut *mut glib::GHashTable,
2086        flags: OstreeRepoListRefsExtFlags,
2087        cancellable: *mut gio::GCancellable,
2088        error: *mut *mut glib::GError,
2089    ) -> gboolean;
2090    pub fn ostree_repo_list_commit_objects_starting_with(
2091        self_: *mut OstreeRepo,
2092        start: *const c_char,
2093        out_commits: *mut *mut glib::GHashTable,
2094        cancellable: *mut gio::GCancellable,
2095        error: *mut *mut glib::GError,
2096    ) -> gboolean;
2097    pub fn ostree_repo_list_objects(
2098        self_: *mut OstreeRepo,
2099        flags: OstreeRepoListObjectsFlags,
2100        out_objects: *mut *mut glib::GHashTable,
2101        cancellable: *mut gio::GCancellable,
2102        error: *mut *mut glib::GError,
2103    ) -> gboolean;
2104    pub fn ostree_repo_list_refs(
2105        self_: *mut OstreeRepo,
2106        refspec_prefix: *const c_char,
2107        out_all_refs: *mut *mut glib::GHashTable,
2108        cancellable: *mut gio::GCancellable,
2109        error: *mut *mut glib::GError,
2110    ) -> gboolean;
2111    #[cfg(feature = "v2016_4")]
2112    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_4")))]
2113    pub fn ostree_repo_list_refs_ext(
2114        self_: *mut OstreeRepo,
2115        refspec_prefix: *const c_char,
2116        out_all_refs: *mut *mut glib::GHashTable,
2117        flags: OstreeRepoListRefsExtFlags,
2118        cancellable: *mut gio::GCancellable,
2119        error: *mut *mut glib::GError,
2120    ) -> gboolean;
2121    #[cfg(feature = "v2020_8")]
2122    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_8")))]
2123    pub fn ostree_repo_list_static_delta_indexes(
2124        self_: *mut OstreeRepo,
2125        out_indexes: *mut *mut glib::GPtrArray,
2126        cancellable: *mut gio::GCancellable,
2127        error: *mut *mut glib::GError,
2128    ) -> gboolean;
2129    pub fn ostree_repo_list_static_delta_names(
2130        self_: *mut OstreeRepo,
2131        out_deltas: *mut *mut glib::GPtrArray,
2132        cancellable: *mut gio::GCancellable,
2133        error: *mut *mut glib::GError,
2134    ) -> gboolean;
2135    #[cfg(feature = "v2015_7")]
2136    #[cfg_attr(docsrs, doc(cfg(feature = "v2015_7")))]
2137    pub fn ostree_repo_load_commit(
2138        self_: *mut OstreeRepo,
2139        checksum: *const c_char,
2140        out_commit: *mut *mut glib::GVariant,
2141        out_state: *mut OstreeRepoCommitState,
2142        error: *mut *mut glib::GError,
2143    ) -> gboolean;
2144    pub fn ostree_repo_load_file(
2145        self_: *mut OstreeRepo,
2146        checksum: *const c_char,
2147        out_input: *mut *mut gio::GInputStream,
2148        out_file_info: *mut *mut gio::GFileInfo,
2149        out_xattrs: *mut *mut glib::GVariant,
2150        cancellable: *mut gio::GCancellable,
2151        error: *mut *mut glib::GError,
2152    ) -> gboolean;
2153    pub fn ostree_repo_load_object_stream(
2154        self_: *mut OstreeRepo,
2155        objtype: OstreeObjectType,
2156        checksum: *const c_char,
2157        out_input: *mut *mut gio::GInputStream,
2158        out_size: *mut u64,
2159        cancellable: *mut gio::GCancellable,
2160        error: *mut *mut glib::GError,
2161    ) -> gboolean;
2162    pub fn ostree_repo_load_variant(
2163        self_: *mut OstreeRepo,
2164        objtype: OstreeObjectType,
2165        sha256: *const c_char,
2166        out_variant: *mut *mut glib::GVariant,
2167        error: *mut *mut glib::GError,
2168    ) -> gboolean;
2169    pub fn ostree_repo_load_variant_if_exists(
2170        self_: *mut OstreeRepo,
2171        objtype: OstreeObjectType,
2172        sha256: *const c_char,
2173        out_variant: *mut *mut glib::GVariant,
2174        error: *mut *mut glib::GError,
2175    ) -> gboolean;
2176    #[cfg(feature = "v2021_3")]
2177    #[cfg_attr(docsrs, doc(cfg(feature = "v2021_3")))]
2178    pub fn ostree_repo_lock_pop(
2179        self_: *mut OstreeRepo,
2180        lock_type: OstreeRepoLockType,
2181        cancellable: *mut gio::GCancellable,
2182        error: *mut *mut glib::GError,
2183    ) -> gboolean;
2184    #[cfg(feature = "v2021_3")]
2185    #[cfg_attr(docsrs, doc(cfg(feature = "v2021_3")))]
2186    pub fn ostree_repo_lock_push(
2187        self_: *mut OstreeRepo,
2188        lock_type: OstreeRepoLockType,
2189        cancellable: *mut gio::GCancellable,
2190        error: *mut *mut glib::GError,
2191    ) -> gboolean;
2192    #[cfg(feature = "v2017_15")]
2193    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_15")))]
2194    pub fn ostree_repo_mark_commit_partial(
2195        self_: *mut OstreeRepo,
2196        checksum: *const c_char,
2197        is_partial: gboolean,
2198        error: *mut *mut glib::GError,
2199    ) -> gboolean;
2200    #[cfg(feature = "v2019_4")]
2201    #[cfg_attr(docsrs, doc(cfg(feature = "v2019_4")))]
2202    pub fn ostree_repo_mark_commit_partial_reason(
2203        self_: *mut OstreeRepo,
2204        checksum: *const c_char,
2205        is_partial: gboolean,
2206        in_state: OstreeRepoCommitState,
2207        error: *mut *mut glib::GError,
2208    ) -> gboolean;
2209    pub fn ostree_repo_open(
2210        self_: *mut OstreeRepo,
2211        cancellable: *mut gio::GCancellable,
2212        error: *mut *mut glib::GError,
2213    ) -> gboolean;
2214    pub fn ostree_repo_prepare_transaction(
2215        self_: *mut OstreeRepo,
2216        out_transaction_resume: *mut gboolean,
2217        cancellable: *mut gio::GCancellable,
2218        error: *mut *mut glib::GError,
2219    ) -> gboolean;
2220    pub fn ostree_repo_prune(
2221        self_: *mut OstreeRepo,
2222        flags: OstreeRepoPruneFlags,
2223        depth: c_int,
2224        out_objects_total: *mut c_int,
2225        out_objects_pruned: *mut c_int,
2226        out_pruned_object_size_total: *mut u64,
2227        cancellable: *mut gio::GCancellable,
2228        error: *mut *mut glib::GError,
2229    ) -> gboolean;
2230    #[cfg(feature = "v2017_1")]
2231    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_1")))]
2232    pub fn ostree_repo_prune_from_reachable(
2233        self_: *mut OstreeRepo,
2234        options: *mut OstreeRepoPruneOptions,
2235        out_objects_total: *mut c_int,
2236        out_objects_pruned: *mut c_int,
2237        out_pruned_object_size_total: *mut u64,
2238        cancellable: *mut gio::GCancellable,
2239        error: *mut *mut glib::GError,
2240    ) -> gboolean;
2241    pub fn ostree_repo_prune_static_deltas(
2242        self_: *mut OstreeRepo,
2243        commit: *const c_char,
2244        cancellable: *mut gio::GCancellable,
2245        error: *mut *mut glib::GError,
2246    ) -> gboolean;
2247    pub fn ostree_repo_pull(
2248        self_: *mut OstreeRepo,
2249        remote_name: *const c_char,
2250        refs_to_fetch: *mut *mut c_char,
2251        flags: OstreeRepoPullFlags,
2252        progress: *mut OstreeAsyncProgress,
2253        cancellable: *mut gio::GCancellable,
2254        error: *mut *mut glib::GError,
2255    ) -> gboolean;
2256    #[cfg(feature = "v2018_6")]
2257    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2258    pub fn ostree_repo_pull_from_remotes_async(
2259        self_: *mut OstreeRepo,
2260        results: *const *const OstreeRepoFinderResult,
2261        options: *mut glib::GVariant,
2262        progress: *mut OstreeAsyncProgress,
2263        cancellable: *mut gio::GCancellable,
2264        callback: gio::GAsyncReadyCallback,
2265        user_data: gpointer,
2266    );
2267    #[cfg(feature = "v2018_6")]
2268    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2269    pub fn ostree_repo_pull_from_remotes_finish(
2270        self_: *mut OstreeRepo,
2271        result: *mut gio::GAsyncResult,
2272        error: *mut *mut glib::GError,
2273    ) -> gboolean;
2274    pub fn ostree_repo_pull_one_dir(
2275        self_: *mut OstreeRepo,
2276        remote_name: *const c_char,
2277        dir_to_pull: *const c_char,
2278        refs_to_fetch: *mut *mut c_char,
2279        flags: OstreeRepoPullFlags,
2280        progress: *mut OstreeAsyncProgress,
2281        cancellable: *mut gio::GCancellable,
2282        error: *mut *mut glib::GError,
2283    ) -> gboolean;
2284    pub fn ostree_repo_pull_with_options(
2285        self_: *mut OstreeRepo,
2286        remote_name_or_baseurl: *const c_char,
2287        options: *mut glib::GVariant,
2288        progress: *mut OstreeAsyncProgress,
2289        cancellable: *mut gio::GCancellable,
2290        error: *mut *mut glib::GError,
2291    ) -> gboolean;
2292    pub fn ostree_repo_query_object_storage_size(
2293        self_: *mut OstreeRepo,
2294        objtype: OstreeObjectType,
2295        sha256: *const c_char,
2296        out_size: *mut u64,
2297        cancellable: *mut gio::GCancellable,
2298        error: *mut *mut glib::GError,
2299    ) -> gboolean;
2300    pub fn ostree_repo_read_commit(
2301        self_: *mut OstreeRepo,
2302        ref_: *const c_char,
2303        out_root: *mut *mut gio::GFile,
2304        out_commit: *mut *mut c_char,
2305        cancellable: *mut gio::GCancellable,
2306        error: *mut *mut glib::GError,
2307    ) -> gboolean;
2308    pub fn ostree_repo_read_commit_detached_metadata(
2309        self_: *mut OstreeRepo,
2310        checksum: *const c_char,
2311        out_metadata: *mut *mut glib::GVariant,
2312        cancellable: *mut gio::GCancellable,
2313        error: *mut *mut glib::GError,
2314    ) -> gboolean;
2315    #[cfg(feature = "v2023_1")]
2316    #[cfg_attr(docsrs, doc(cfg(feature = "v2023_1")))]
2317    pub fn ostree_repo_regenerate_metadata(
2318        self_: *mut OstreeRepo,
2319        additional_metadata: *mut glib::GVariant,
2320        options: *mut glib::GVariant,
2321        cancellable: *mut gio::GCancellable,
2322        error: *mut *mut glib::GError,
2323    ) -> gboolean;
2324    pub fn ostree_repo_regenerate_summary(
2325        self_: *mut OstreeRepo,
2326        additional_metadata: *mut glib::GVariant,
2327        cancellable: *mut gio::GCancellable,
2328        error: *mut *mut glib::GError,
2329    ) -> gboolean;
2330    #[cfg(feature = "v2017_2")]
2331    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_2")))]
2332    pub fn ostree_repo_reload_config(
2333        self_: *mut OstreeRepo,
2334        cancellable: *mut gio::GCancellable,
2335        error: *mut *mut glib::GError,
2336    ) -> gboolean;
2337    pub fn ostree_repo_remote_add(
2338        self_: *mut OstreeRepo,
2339        name: *const c_char,
2340        url: *const c_char,
2341        options: *mut glib::GVariant,
2342        cancellable: *mut gio::GCancellable,
2343        error: *mut *mut glib::GError,
2344    ) -> gboolean;
2345    pub fn ostree_repo_remote_change(
2346        self_: *mut OstreeRepo,
2347        sysroot: *mut gio::GFile,
2348        changeop: OstreeRepoRemoteChange,
2349        name: *const c_char,
2350        url: *const c_char,
2351        options: *mut glib::GVariant,
2352        cancellable: *mut gio::GCancellable,
2353        error: *mut *mut glib::GError,
2354    ) -> gboolean;
2355    pub fn ostree_repo_remote_delete(
2356        self_: *mut OstreeRepo,
2357        name: *const c_char,
2358        cancellable: *mut gio::GCancellable,
2359        error: *mut *mut glib::GError,
2360    ) -> gboolean;
2361    pub fn ostree_repo_remote_fetch_summary(
2362        self_: *mut OstreeRepo,
2363        name: *const c_char,
2364        out_summary: *mut *mut glib::GBytes,
2365        out_signatures: *mut *mut glib::GBytes,
2366        cancellable: *mut gio::GCancellable,
2367        error: *mut *mut glib::GError,
2368    ) -> gboolean;
2369    #[cfg(feature = "v2016_6")]
2370    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_6")))]
2371    pub fn ostree_repo_remote_fetch_summary_with_options(
2372        self_: *mut OstreeRepo,
2373        name: *const c_char,
2374        options: *mut glib::GVariant,
2375        out_summary: *mut *mut glib::GBytes,
2376        out_signatures: *mut *mut glib::GBytes,
2377        cancellable: *mut gio::GCancellable,
2378        error: *mut *mut glib::GError,
2379    ) -> gboolean;
2380    #[cfg(feature = "v2021_4")]
2381    #[cfg_attr(docsrs, doc(cfg(feature = "v2021_4")))]
2382    pub fn ostree_repo_remote_get_gpg_keys(
2383        self_: *mut OstreeRepo,
2384        name: *const c_char,
2385        key_ids: *const *const c_char,
2386        out_keys: *mut *mut glib::GPtrArray,
2387        cancellable: *mut gio::GCancellable,
2388        error: *mut *mut glib::GError,
2389    ) -> gboolean;
2390    pub fn ostree_repo_remote_get_gpg_verify(
2391        self_: *mut OstreeRepo,
2392        name: *const c_char,
2393        out_gpg_verify: *mut gboolean,
2394        error: *mut *mut glib::GError,
2395    ) -> gboolean;
2396    pub fn ostree_repo_remote_get_gpg_verify_summary(
2397        self_: *mut OstreeRepo,
2398        name: *const c_char,
2399        out_gpg_verify_summary: *mut gboolean,
2400        error: *mut *mut glib::GError,
2401    ) -> gboolean;
2402    pub fn ostree_repo_remote_get_url(
2403        self_: *mut OstreeRepo,
2404        name: *const c_char,
2405        out_url: *mut *mut c_char,
2406        error: *mut *mut glib::GError,
2407    ) -> gboolean;
2408    pub fn ostree_repo_remote_gpg_import(
2409        self_: *mut OstreeRepo,
2410        name: *const c_char,
2411        source_stream: *mut gio::GInputStream,
2412        key_ids: *const *const c_char,
2413        out_imported: *mut c_uint,
2414        cancellable: *mut gio::GCancellable,
2415        error: *mut *mut glib::GError,
2416    ) -> gboolean;
2417    pub fn ostree_repo_remote_list(
2418        self_: *mut OstreeRepo,
2419        out_n_remotes: *mut c_uint,
2420    ) -> *mut *mut c_char;
2421    #[cfg(feature = "v2018_6")]
2422    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2423    pub fn ostree_repo_remote_list_collection_refs(
2424        self_: *mut OstreeRepo,
2425        remote_name: *const c_char,
2426        out_all_refs: *mut *mut glib::GHashTable,
2427        cancellable: *mut gio::GCancellable,
2428        error: *mut *mut glib::GError,
2429    ) -> gboolean;
2430    pub fn ostree_repo_remote_list_refs(
2431        self_: *mut OstreeRepo,
2432        remote_name: *const c_char,
2433        out_all_refs: *mut *mut glib::GHashTable,
2434        cancellable: *mut gio::GCancellable,
2435        error: *mut *mut glib::GError,
2436    ) -> gboolean;
2437    #[cfg(feature = "v2018_6")]
2438    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2439    pub fn ostree_repo_resolve_collection_ref(
2440        self_: *mut OstreeRepo,
2441        ref_: *const OstreeCollectionRef,
2442        allow_noent: gboolean,
2443        flags: OstreeRepoResolveRevExtFlags,
2444        out_rev: *mut *mut c_char,
2445        cancellable: *mut gio::GCancellable,
2446        error: *mut *mut glib::GError,
2447    ) -> gboolean;
2448    #[cfg(feature = "v2018_6")]
2449    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2450    pub fn ostree_repo_resolve_keyring_for_collection(
2451        self_: *mut OstreeRepo,
2452        collection_id: *const c_char,
2453        cancellable: *mut gio::GCancellable,
2454        error: *mut *mut glib::GError,
2455    ) -> *mut OstreeRemote;
2456    pub fn ostree_repo_resolve_rev(
2457        self_: *mut OstreeRepo,
2458        refspec: *const c_char,
2459        allow_noent: gboolean,
2460        out_rev: *mut *mut c_char,
2461        error: *mut *mut glib::GError,
2462    ) -> gboolean;
2463    #[cfg(feature = "v2016_7")]
2464    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_7")))]
2465    pub fn ostree_repo_resolve_rev_ext(
2466        self_: *mut OstreeRepo,
2467        refspec: *const c_char,
2468        allow_noent: gboolean,
2469        flags: OstreeRepoResolveRevExtFlags,
2470        out_rev: *mut *mut c_char,
2471        error: *mut *mut glib::GError,
2472    ) -> gboolean;
2473    pub fn ostree_repo_scan_hardlinks(
2474        self_: *mut OstreeRepo,
2475        cancellable: *mut gio::GCancellable,
2476        error: *mut *mut glib::GError,
2477    ) -> gboolean;
2478    #[cfg(feature = "v2017_10")]
2479    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_10")))]
2480    pub fn ostree_repo_set_alias_ref_immediate(
2481        self_: *mut OstreeRepo,
2482        remote: *const c_char,
2483        ref_: *const c_char,
2484        target: *const c_char,
2485        cancellable: *mut gio::GCancellable,
2486        error: *mut *mut glib::GError,
2487    ) -> gboolean;
2488    #[cfg(feature = "v2016_5")]
2489    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_5")))]
2490    pub fn ostree_repo_set_cache_dir(
2491        self_: *mut OstreeRepo,
2492        dfd: c_int,
2493        path: *const c_char,
2494        cancellable: *mut gio::GCancellable,
2495        error: *mut *mut glib::GError,
2496    ) -> gboolean;
2497    #[cfg(feature = "v2018_6")]
2498    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2499    pub fn ostree_repo_set_collection_id(
2500        self_: *mut OstreeRepo,
2501        collection_id: *const c_char,
2502        error: *mut *mut glib::GError,
2503    ) -> gboolean;
2504    #[cfg(feature = "v2018_6")]
2505    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2506    pub fn ostree_repo_set_collection_ref_immediate(
2507        self_: *mut OstreeRepo,
2508        ref_: *const OstreeCollectionRef,
2509        checksum: *const c_char,
2510        cancellable: *mut gio::GCancellable,
2511        error: *mut *mut glib::GError,
2512    ) -> gboolean;
2513    pub fn ostree_repo_set_disable_fsync(self_: *mut OstreeRepo, disable_fsync: gboolean);
2514    pub fn ostree_repo_set_ref_immediate(
2515        self_: *mut OstreeRepo,
2516        remote: *const c_char,
2517        ref_: *const c_char,
2518        checksum: *const c_char,
2519        cancellable: *mut gio::GCancellable,
2520        error: *mut *mut glib::GError,
2521    ) -> gboolean;
2522    pub fn ostree_repo_sign_commit(
2523        self_: *mut OstreeRepo,
2524        commit_checksum: *const c_char,
2525        key_id: *const c_char,
2526        homedir: *const c_char,
2527        cancellable: *mut gio::GCancellable,
2528        error: *mut *mut glib::GError,
2529    ) -> gboolean;
2530    pub fn ostree_repo_sign_delta(
2531        self_: *mut OstreeRepo,
2532        from_commit: *const c_char,
2533        to_commit: *const c_char,
2534        key_id: *const c_char,
2535        homedir: *const c_char,
2536        cancellable: *mut gio::GCancellable,
2537        error: *mut *mut glib::GError,
2538    ) -> gboolean;
2539    #[cfg(feature = "v2021_4")]
2540    #[cfg_attr(docsrs, doc(cfg(feature = "v2021_4")))]
2541    pub fn ostree_repo_signature_verify_commit_data(
2542        self_: *mut OstreeRepo,
2543        remote_name: *const c_char,
2544        commit_data: *mut glib::GBytes,
2545        commit_metadata: *mut glib::GBytes,
2546        flags: OstreeRepoVerifyFlags,
2547        out_results: *mut *mut c_char,
2548        error: *mut *mut glib::GError,
2549    ) -> gboolean;
2550    pub fn ostree_repo_static_delta_execute_offline(
2551        self_: *mut OstreeRepo,
2552        dir_or_file: *mut gio::GFile,
2553        skip_validation: gboolean,
2554        cancellable: *mut gio::GCancellable,
2555        error: *mut *mut glib::GError,
2556    ) -> gboolean;
2557    #[cfg(feature = "v2020_7")]
2558    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_7")))]
2559    pub fn ostree_repo_static_delta_execute_offline_with_signature(
2560        self_: *mut OstreeRepo,
2561        dir_or_file: *mut gio::GFile,
2562        sign: *mut OstreeSign,
2563        skip_validation: gboolean,
2564        cancellable: *mut gio::GCancellable,
2565        error: *mut *mut glib::GError,
2566    ) -> gboolean;
2567    pub fn ostree_repo_static_delta_generate(
2568        self_: *mut OstreeRepo,
2569        opt: OstreeStaticDeltaGenerateOpt,
2570        from: *const c_char,
2571        to: *const c_char,
2572        metadata: *mut glib::GVariant,
2573        params: *mut glib::GVariant,
2574        cancellable: *mut gio::GCancellable,
2575        error: *mut *mut glib::GError,
2576    ) -> gboolean;
2577    #[cfg(feature = "v2020_8")]
2578    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_8")))]
2579    pub fn ostree_repo_static_delta_reindex(
2580        repo: *mut OstreeRepo,
2581        flags: OstreeStaticDeltaIndexFlags,
2582        opt_to_commit: *const c_char,
2583        cancellable: *mut gio::GCancellable,
2584        error: *mut *mut glib::GError,
2585    ) -> gboolean;
2586    #[cfg(feature = "v2020_7")]
2587    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_7")))]
2588    pub fn ostree_repo_static_delta_verify_signature(
2589        self_: *mut OstreeRepo,
2590        delta_id: *const c_char,
2591        sign: *mut OstreeSign,
2592        out_success_message: *mut *mut c_char,
2593        error: *mut *mut glib::GError,
2594    ) -> gboolean;
2595    #[cfg(feature = "v2018_6")]
2596    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2597    pub fn ostree_repo_transaction_set_collection_ref(
2598        self_: *mut OstreeRepo,
2599        ref_: *const OstreeCollectionRef,
2600        checksum: *const c_char,
2601    );
2602    pub fn ostree_repo_transaction_set_ref(
2603        self_: *mut OstreeRepo,
2604        remote: *const c_char,
2605        ref_: *const c_char,
2606        checksum: *const c_char,
2607    );
2608    pub fn ostree_repo_transaction_set_refspec(
2609        self_: *mut OstreeRepo,
2610        refspec: *const c_char,
2611        checksum: *const c_char,
2612    );
2613    pub fn ostree_repo_traverse_commit(
2614        repo: *mut OstreeRepo,
2615        commit_checksum: *const c_char,
2616        maxdepth: c_int,
2617        out_reachable: *mut *mut glib::GHashTable,
2618        cancellable: *mut gio::GCancellable,
2619        error: *mut *mut glib::GError,
2620    ) -> gboolean;
2621    pub fn ostree_repo_traverse_commit_union(
2622        repo: *mut OstreeRepo,
2623        commit_checksum: *const c_char,
2624        maxdepth: c_int,
2625        inout_reachable: *mut glib::GHashTable,
2626        cancellable: *mut gio::GCancellable,
2627        error: *mut *mut glib::GError,
2628    ) -> gboolean;
2629    #[cfg(feature = "v2018_5")]
2630    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_5")))]
2631    pub fn ostree_repo_traverse_commit_union_with_parents(
2632        repo: *mut OstreeRepo,
2633        commit_checksum: *const c_char,
2634        maxdepth: c_int,
2635        inout_reachable: *mut glib::GHashTable,
2636        inout_parents: *mut glib::GHashTable,
2637        cancellable: *mut gio::GCancellable,
2638        error: *mut *mut glib::GError,
2639    ) -> gboolean;
2640    #[cfg(feature = "v2018_5")]
2641    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_5")))]
2642    pub fn ostree_repo_traverse_commit_with_flags(
2643        repo: *mut OstreeRepo,
2644        flags: OstreeRepoCommitTraverseFlags,
2645        commit_checksum: *const c_char,
2646        maxdepth: c_int,
2647        inout_reachable: *mut glib::GHashTable,
2648        inout_parents: *mut glib::GHashTable,
2649        cancellable: *mut gio::GCancellable,
2650        error: *mut *mut glib::GError,
2651    ) -> gboolean;
2652    #[cfg(feature = "v2018_6")]
2653    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2654    pub fn ostree_repo_traverse_reachable_refs(
2655        self_: *mut OstreeRepo,
2656        depth: c_uint,
2657        reachable: *mut glib::GHashTable,
2658        cancellable: *mut gio::GCancellable,
2659        error: *mut *mut glib::GError,
2660    ) -> gboolean;
2661    pub fn ostree_repo_verify_commit(
2662        self_: *mut OstreeRepo,
2663        commit_checksum: *const c_char,
2664        keyringdir: *mut gio::GFile,
2665        extra_keyring: *mut gio::GFile,
2666        cancellable: *mut gio::GCancellable,
2667        error: *mut *mut glib::GError,
2668    ) -> gboolean;
2669    pub fn ostree_repo_verify_commit_ext(
2670        self_: *mut OstreeRepo,
2671        commit_checksum: *const c_char,
2672        keyringdir: *mut gio::GFile,
2673        extra_keyring: *mut gio::GFile,
2674        cancellable: *mut gio::GCancellable,
2675        error: *mut *mut glib::GError,
2676    ) -> *mut OstreeGpgVerifyResult;
2677    #[cfg(feature = "v2016_14")]
2678    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_14")))]
2679    pub fn ostree_repo_verify_commit_for_remote(
2680        self_: *mut OstreeRepo,
2681        commit_checksum: *const c_char,
2682        remote_name: *const c_char,
2683        cancellable: *mut gio::GCancellable,
2684        error: *mut *mut glib::GError,
2685    ) -> *mut OstreeGpgVerifyResult;
2686    pub fn ostree_repo_verify_summary(
2687        self_: *mut OstreeRepo,
2688        remote_name: *const c_char,
2689        summary: *mut glib::GBytes,
2690        signatures: *mut glib::GBytes,
2691        cancellable: *mut gio::GCancellable,
2692        error: *mut *mut glib::GError,
2693    ) -> *mut OstreeGpgVerifyResult;
2694    pub fn ostree_repo_write_archive_to_mtree(
2695        self_: *mut OstreeRepo,
2696        archive: *mut gio::GFile,
2697        mtree: *mut OstreeMutableTree,
2698        modifier: *mut OstreeRepoCommitModifier,
2699        autocreate_parents: gboolean,
2700        cancellable: *mut gio::GCancellable,
2701        error: *mut *mut glib::GError,
2702    ) -> gboolean;
2703    pub fn ostree_repo_write_archive_to_mtree_from_fd(
2704        self_: *mut OstreeRepo,
2705        fd: c_int,
2706        mtree: *mut OstreeMutableTree,
2707        modifier: *mut OstreeRepoCommitModifier,
2708        autocreate_parents: gboolean,
2709        cancellable: *mut gio::GCancellable,
2710        error: *mut *mut glib::GError,
2711    ) -> gboolean;
2712    pub fn ostree_repo_write_commit(
2713        self_: *mut OstreeRepo,
2714        parent: *const c_char,
2715        subject: *const c_char,
2716        body: *const c_char,
2717        metadata: *mut glib::GVariant,
2718        root: *mut OstreeRepoFile,
2719        out_commit: *mut *mut c_char,
2720        cancellable: *mut gio::GCancellable,
2721        error: *mut *mut glib::GError,
2722    ) -> gboolean;
2723    pub fn ostree_repo_write_commit_detached_metadata(
2724        self_: *mut OstreeRepo,
2725        checksum: *const c_char,
2726        metadata: *mut glib::GVariant,
2727        cancellable: *mut gio::GCancellable,
2728        error: *mut *mut glib::GError,
2729    ) -> gboolean;
2730    pub fn ostree_repo_write_commit_with_time(
2731        self_: *mut OstreeRepo,
2732        parent: *const c_char,
2733        subject: *const c_char,
2734        body: *const c_char,
2735        metadata: *mut glib::GVariant,
2736        root: *mut OstreeRepoFile,
2737        time: u64,
2738        out_commit: *mut *mut c_char,
2739        cancellable: *mut gio::GCancellable,
2740        error: *mut *mut glib::GError,
2741    ) -> gboolean;
2742    pub fn ostree_repo_write_config(
2743        self_: *mut OstreeRepo,
2744        new_config: *mut glib::GKeyFile,
2745        error: *mut *mut glib::GError,
2746    ) -> gboolean;
2747    pub fn ostree_repo_write_content(
2748        self_: *mut OstreeRepo,
2749        expected_checksum: *const c_char,
2750        object_input: *mut gio::GInputStream,
2751        length: u64,
2752        out_csum: *mut *mut [*mut u8; 32],
2753        cancellable: *mut gio::GCancellable,
2754        error: *mut *mut glib::GError,
2755    ) -> gboolean;
2756    pub fn ostree_repo_write_content_async(
2757        self_: *mut OstreeRepo,
2758        expected_checksum: *const c_char,
2759        object: *mut gio::GInputStream,
2760        length: u64,
2761        cancellable: *mut gio::GCancellable,
2762        callback: gio::GAsyncReadyCallback,
2763        user_data: gpointer,
2764    );
2765    pub fn ostree_repo_write_content_finish(
2766        self_: *mut OstreeRepo,
2767        result: *mut gio::GAsyncResult,
2768        out_csum: *mut *mut u8,
2769        error: *mut *mut glib::GError,
2770    ) -> gboolean;
2771    pub fn ostree_repo_write_content_trusted(
2772        self_: *mut OstreeRepo,
2773        checksum: *const c_char,
2774        object_input: *mut gio::GInputStream,
2775        length: u64,
2776        cancellable: *mut gio::GCancellable,
2777        error: *mut *mut glib::GError,
2778    ) -> gboolean;
2779    pub fn ostree_repo_write_dfd_to_mtree(
2780        self_: *mut OstreeRepo,
2781        dfd: c_int,
2782        path: *const c_char,
2783        mtree: *mut OstreeMutableTree,
2784        modifier: *mut OstreeRepoCommitModifier,
2785        cancellable: *mut gio::GCancellable,
2786        error: *mut *mut glib::GError,
2787    ) -> gboolean;
2788    pub fn ostree_repo_write_directory_to_mtree(
2789        self_: *mut OstreeRepo,
2790        dir: *mut gio::GFile,
2791        mtree: *mut OstreeMutableTree,
2792        modifier: *mut OstreeRepoCommitModifier,
2793        cancellable: *mut gio::GCancellable,
2794        error: *mut *mut glib::GError,
2795    ) -> gboolean;
2796    pub fn ostree_repo_write_metadata(
2797        self_: *mut OstreeRepo,
2798        objtype: OstreeObjectType,
2799        expected_checksum: *const c_char,
2800        object: *mut glib::GVariant,
2801        out_csum: *mut *mut [*mut u8; 32],
2802        cancellable: *mut gio::GCancellable,
2803        error: *mut *mut glib::GError,
2804    ) -> gboolean;
2805    pub fn ostree_repo_write_metadata_async(
2806        self_: *mut OstreeRepo,
2807        objtype: OstreeObjectType,
2808        expected_checksum: *const c_char,
2809        object: *mut glib::GVariant,
2810        cancellable: *mut gio::GCancellable,
2811        callback: gio::GAsyncReadyCallback,
2812        user_data: gpointer,
2813    );
2814    pub fn ostree_repo_write_metadata_finish(
2815        self_: *mut OstreeRepo,
2816        result: *mut gio::GAsyncResult,
2817        out_csum: *mut *mut [c_uchar; 32],
2818        error: *mut *mut glib::GError,
2819    ) -> gboolean;
2820    pub fn ostree_repo_write_metadata_stream_trusted(
2821        self_: *mut OstreeRepo,
2822        objtype: OstreeObjectType,
2823        checksum: *const c_char,
2824        object_input: *mut gio::GInputStream,
2825        length: u64,
2826        cancellable: *mut gio::GCancellable,
2827        error: *mut *mut glib::GError,
2828    ) -> gboolean;
2829    pub fn ostree_repo_write_metadata_trusted(
2830        self_: *mut OstreeRepo,
2831        objtype: OstreeObjectType,
2832        checksum: *const c_char,
2833        variant: *mut glib::GVariant,
2834        cancellable: *mut gio::GCancellable,
2835        error: *mut *mut glib::GError,
2836    ) -> gboolean;
2837    pub fn ostree_repo_write_mtree(
2838        self_: *mut OstreeRepo,
2839        mtree: *mut OstreeMutableTree,
2840        out_file: *mut *mut gio::GFile,
2841        cancellable: *mut gio::GCancellable,
2842        error: *mut *mut glib::GError,
2843    ) -> gboolean;
2844    #[cfg(feature = "v2021_2")]
2845    #[cfg_attr(docsrs, doc(cfg(feature = "v2021_2")))]
2846    pub fn ostree_repo_write_regfile(
2847        self_: *mut OstreeRepo,
2848        expected_checksum: *const c_char,
2849        uid: u32,
2850        gid: u32,
2851        mode: u32,
2852        content_len: u64,
2853        xattrs: *mut glib::GVariant,
2854        error: *mut *mut glib::GError,
2855    ) -> *mut OstreeContentWriter;
2856    #[cfg(feature = "v2021_2")]
2857    #[cfg_attr(docsrs, doc(cfg(feature = "v2021_2")))]
2858    pub fn ostree_repo_write_regfile_inline(
2859        self_: *mut OstreeRepo,
2860        expected_checksum: *const c_char,
2861        uid: u32,
2862        gid: u32,
2863        mode: u32,
2864        xattrs: *mut glib::GVariant,
2865        buf: *const u8,
2866        len: size_t,
2867        cancellable: *mut gio::GCancellable,
2868        error: *mut *mut glib::GError,
2869    ) -> *mut c_char;
2870    #[cfg(feature = "v2021_2")]
2871    #[cfg_attr(docsrs, doc(cfg(feature = "v2021_2")))]
2872    pub fn ostree_repo_write_symlink(
2873        self_: *mut OstreeRepo,
2874        expected_checksum: *const c_char,
2875        uid: u32,
2876        gid: u32,
2877        xattrs: *mut glib::GVariant,
2878        symlink_target: *const c_char,
2879        cancellable: *mut gio::GCancellable,
2880        error: *mut *mut glib::GError,
2881    ) -> *mut c_char;
2882
2883    //=========================================================================
2884    // OstreeRepoFile
2885    //=========================================================================
2886    pub fn ostree_repo_file_get_type() -> GType;
2887    pub fn ostree_repo_file_ensure_resolved(
2888        self_: *mut OstreeRepoFile,
2889        error: *mut *mut glib::GError,
2890    ) -> gboolean;
2891    pub fn ostree_repo_file_get_checksum(self_: *mut OstreeRepoFile) -> *const c_char;
2892    pub fn ostree_repo_file_get_repo(self_: *mut OstreeRepoFile) -> *mut OstreeRepo;
2893    pub fn ostree_repo_file_get_root(self_: *mut OstreeRepoFile) -> *mut OstreeRepoFile;
2894    pub fn ostree_repo_file_get_xattrs(
2895        self_: *mut OstreeRepoFile,
2896        out_xattrs: *mut *mut glib::GVariant,
2897        cancellable: *mut gio::GCancellable,
2898        error: *mut *mut glib::GError,
2899    ) -> gboolean;
2900    pub fn ostree_repo_file_tree_find_child(
2901        self_: *mut OstreeRepoFile,
2902        name: *const c_char,
2903        is_dir: *mut gboolean,
2904        out_container: *mut *mut glib::GVariant,
2905    ) -> c_int;
2906    pub fn ostree_repo_file_tree_get_contents(self_: *mut OstreeRepoFile) -> *mut glib::GVariant;
2907    pub fn ostree_repo_file_tree_get_contents_checksum(self_: *mut OstreeRepoFile)
2908        -> *const c_char;
2909    pub fn ostree_repo_file_tree_get_metadata(self_: *mut OstreeRepoFile) -> *mut glib::GVariant;
2910    pub fn ostree_repo_file_tree_get_metadata_checksum(self_: *mut OstreeRepoFile)
2911        -> *const c_char;
2912    pub fn ostree_repo_file_tree_query_child(
2913        self_: *mut OstreeRepoFile,
2914        n: c_int,
2915        attributes: *const c_char,
2916        flags: gio::GFileQueryInfoFlags,
2917        out_info: *mut *mut gio::GFileInfo,
2918        cancellable: *mut gio::GCancellable,
2919        error: *mut *mut glib::GError,
2920    ) -> gboolean;
2921    pub fn ostree_repo_file_tree_set_metadata(
2922        self_: *mut OstreeRepoFile,
2923        checksum: *const c_char,
2924        metadata: *mut glib::GVariant,
2925    );
2926
2927    //=========================================================================
2928    // OstreeRepoFinderAvahi
2929    //=========================================================================
2930    pub fn ostree_repo_finder_avahi_get_type() -> GType;
2931    #[cfg(feature = "v2018_6")]
2932    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2933    pub fn ostree_repo_finder_avahi_new(
2934        context: *mut glib::GMainContext,
2935    ) -> *mut OstreeRepoFinderAvahi;
2936    #[cfg(feature = "v2018_6")]
2937    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2938    pub fn ostree_repo_finder_avahi_start(
2939        self_: *mut OstreeRepoFinderAvahi,
2940        error: *mut *mut glib::GError,
2941    );
2942    #[cfg(feature = "v2018_6")]
2943    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2944    pub fn ostree_repo_finder_avahi_stop(self_: *mut OstreeRepoFinderAvahi);
2945
2946    //=========================================================================
2947    // OstreeRepoFinderConfig
2948    //=========================================================================
2949    pub fn ostree_repo_finder_config_get_type() -> GType;
2950    #[cfg(feature = "v2018_6")]
2951    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2952    pub fn ostree_repo_finder_config_new() -> *mut OstreeRepoFinderConfig;
2953
2954    //=========================================================================
2955    // OstreeRepoFinderMount
2956    //=========================================================================
2957    pub fn ostree_repo_finder_mount_get_type() -> GType;
2958    #[cfg(feature = "v2018_6")]
2959    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2960    pub fn ostree_repo_finder_mount_new(
2961        monitor: *mut gio::GVolumeMonitor,
2962    ) -> *mut OstreeRepoFinderMount;
2963
2964    //=========================================================================
2965    // OstreeRepoFinderOverride
2966    //=========================================================================
2967    pub fn ostree_repo_finder_override_get_type() -> GType;
2968    #[cfg(feature = "v2018_6")]
2969    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2970    pub fn ostree_repo_finder_override_new() -> *mut OstreeRepoFinderOverride;
2971    #[cfg(feature = "v2018_6")]
2972    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
2973    pub fn ostree_repo_finder_override_add_uri(
2974        self_: *mut OstreeRepoFinderOverride,
2975        uri: *const c_char,
2976    );
2977
2978    //=========================================================================
2979    // OstreeSePolicy
2980    //=========================================================================
2981    pub fn ostree_sepolicy_get_type() -> GType;
2982    pub fn ostree_sepolicy_new(
2983        path: *mut gio::GFile,
2984        cancellable: *mut gio::GCancellable,
2985        error: *mut *mut glib::GError,
2986    ) -> *mut OstreeSePolicy;
2987    #[cfg(feature = "v2017_4")]
2988    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_4")))]
2989    pub fn ostree_sepolicy_new_at(
2990        rootfs_dfd: c_int,
2991        cancellable: *mut gio::GCancellable,
2992        error: *mut *mut glib::GError,
2993    ) -> *mut OstreeSePolicy;
2994    pub fn ostree_sepolicy_new_from_commit(
2995        repo: *mut OstreeRepo,
2996        rev: *const c_char,
2997        cancellable: *mut gio::GCancellable,
2998        error: *mut *mut glib::GError,
2999    ) -> *mut OstreeSePolicy;
3000    pub fn ostree_sepolicy_fscreatecon_cleanup(unused: *mut *mut c_void);
3001    #[cfg(feature = "v2016_5")]
3002    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_5")))]
3003    pub fn ostree_sepolicy_get_csum(self_: *mut OstreeSePolicy) -> *const c_char;
3004    pub fn ostree_sepolicy_get_label(
3005        self_: *mut OstreeSePolicy,
3006        relpath: *const c_char,
3007        unix_mode: u32,
3008        out_label: *mut *mut c_char,
3009        cancellable: *mut gio::GCancellable,
3010        error: *mut *mut glib::GError,
3011    ) -> gboolean;
3012    pub fn ostree_sepolicy_get_name(self_: *mut OstreeSePolicy) -> *const c_char;
3013    pub fn ostree_sepolicy_get_path(self_: *mut OstreeSePolicy) -> *mut gio::GFile;
3014    pub fn ostree_sepolicy_restorecon(
3015        self_: *mut OstreeSePolicy,
3016        path: *const c_char,
3017        info: *mut gio::GFileInfo,
3018        target: *mut gio::GFile,
3019        flags: OstreeSePolicyRestoreconFlags,
3020        out_new_label: *mut *mut c_char,
3021        cancellable: *mut gio::GCancellable,
3022        error: *mut *mut glib::GError,
3023    ) -> gboolean;
3024    pub fn ostree_sepolicy_setfscreatecon(
3025        self_: *mut OstreeSePolicy,
3026        path: *const c_char,
3027        mode: u32,
3028        error: *mut *mut glib::GError,
3029    ) -> gboolean;
3030
3031    //=========================================================================
3032    // OstreeSysroot
3033    //=========================================================================
3034    pub fn ostree_sysroot_get_type() -> GType;
3035    pub fn ostree_sysroot_new(path: *mut gio::GFile) -> *mut OstreeSysroot;
3036    pub fn ostree_sysroot_new_default() -> *mut OstreeSysroot;
3037    pub fn ostree_sysroot_get_deployment_origin_path(
3038        deployment_path: *mut gio::GFile,
3039    ) -> *mut gio::GFile;
3040    #[cfg(feature = "v2023_8")]
3041    #[cfg_attr(docsrs, doc(cfg(feature = "v2023_8")))]
3042    pub fn ostree_sysroot_change_finalization(
3043        self_: *mut OstreeSysroot,
3044        deployment: *mut OstreeDeployment,
3045        error: *mut *mut glib::GError,
3046    ) -> gboolean;
3047    pub fn ostree_sysroot_cleanup(
3048        self_: *mut OstreeSysroot,
3049        cancellable: *mut gio::GCancellable,
3050        error: *mut *mut glib::GError,
3051    ) -> gboolean;
3052    #[cfg(feature = "v2018_6")]
3053    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
3054    pub fn ostree_sysroot_cleanup_prune_repo(
3055        sysroot: *mut OstreeSysroot,
3056        options: *mut OstreeRepoPruneOptions,
3057        out_objects_total: *mut c_int,
3058        out_objects_pruned: *mut c_int,
3059        out_pruned_object_size_total: *mut u64,
3060        cancellable: *mut gio::GCancellable,
3061        error: *mut *mut glib::GError,
3062    ) -> gboolean;
3063    #[cfg(feature = "v2018_5")]
3064    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_5")))]
3065    pub fn ostree_sysroot_deploy_tree(
3066        self_: *mut OstreeSysroot,
3067        osname: *const c_char,
3068        revision: *const c_char,
3069        origin: *mut glib::GKeyFile,
3070        provided_merge_deployment: *mut OstreeDeployment,
3071        override_kernel_argv: *mut *mut c_char,
3072        out_new_deployment: *mut *mut OstreeDeployment,
3073        cancellable: *mut gio::GCancellable,
3074        error: *mut *mut glib::GError,
3075    ) -> gboolean;
3076    #[cfg(feature = "v2020_7")]
3077    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_7")))]
3078    pub fn ostree_sysroot_deploy_tree_with_options(
3079        self_: *mut OstreeSysroot,
3080        osname: *const c_char,
3081        revision: *const c_char,
3082        origin: *mut glib::GKeyFile,
3083        provided_merge_deployment: *mut OstreeDeployment,
3084        opts: *mut OstreeSysrootDeployTreeOpts,
3085        out_new_deployment: *mut *mut OstreeDeployment,
3086        cancellable: *mut gio::GCancellable,
3087        error: *mut *mut glib::GError,
3088    ) -> gboolean;
3089    #[cfg(feature = "v2025_1")]
3090    #[cfg_attr(docsrs, doc(cfg(feature = "v2025_1")))]
3091    pub fn ostree_sysroot_deployment_kexec_load(
3092        self_: *mut OstreeSysroot,
3093        deployment: *mut OstreeDeployment,
3094        cancellable: *mut gio::GCancellable,
3095        error: *mut *mut glib::GError,
3096    ) -> gboolean;
3097    pub fn ostree_sysroot_deployment_set_kargs(
3098        self_: *mut OstreeSysroot,
3099        deployment: *mut OstreeDeployment,
3100        new_kargs: *mut *mut c_char,
3101        cancellable: *mut gio::GCancellable,
3102        error: *mut *mut glib::GError,
3103    ) -> gboolean;
3104    pub fn ostree_sysroot_deployment_set_kargs_in_place(
3105        self_: *mut OstreeSysroot,
3106        deployment: *mut OstreeDeployment,
3107        kargs_str: *mut c_char,
3108        cancellable: *mut gio::GCancellable,
3109        error: *mut *mut glib::GError,
3110    ) -> gboolean;
3111    pub fn ostree_sysroot_deployment_set_mutable(
3112        self_: *mut OstreeSysroot,
3113        deployment: *mut OstreeDeployment,
3114        is_mutable: gboolean,
3115        cancellable: *mut gio::GCancellable,
3116        error: *mut *mut glib::GError,
3117    ) -> gboolean;
3118    #[cfg(feature = "v2018_3")]
3119    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_3")))]
3120    pub fn ostree_sysroot_deployment_set_pinned(
3121        self_: *mut OstreeSysroot,
3122        deployment: *mut OstreeDeployment,
3123        is_pinned: gboolean,
3124        error: *mut *mut glib::GError,
3125    ) -> gboolean;
3126    #[cfg(feature = "v2016_4")]
3127    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_4")))]
3128    pub fn ostree_sysroot_deployment_unlock(
3129        self_: *mut OstreeSysroot,
3130        deployment: *mut OstreeDeployment,
3131        unlocked_state: OstreeDeploymentUnlockedState,
3132        cancellable: *mut gio::GCancellable,
3133        error: *mut *mut glib::GError,
3134    ) -> gboolean;
3135    pub fn ostree_sysroot_ensure_initialized(
3136        self_: *mut OstreeSysroot,
3137        cancellable: *mut gio::GCancellable,
3138        error: *mut *mut glib::GError,
3139    ) -> gboolean;
3140    pub fn ostree_sysroot_get_booted_deployment(self_: *mut OstreeSysroot)
3141        -> *mut OstreeDeployment;
3142    pub fn ostree_sysroot_get_bootversion(self_: *mut OstreeSysroot) -> c_int;
3143    pub fn ostree_sysroot_get_deployment_directory(
3144        self_: *mut OstreeSysroot,
3145        deployment: *mut OstreeDeployment,
3146    ) -> *mut gio::GFile;
3147    pub fn ostree_sysroot_get_deployment_dirpath(
3148        self_: *mut OstreeSysroot,
3149        deployment: *mut OstreeDeployment,
3150    ) -> *mut c_char;
3151    pub fn ostree_sysroot_get_deployments(self_: *mut OstreeSysroot) -> *mut glib::GPtrArray;
3152    pub fn ostree_sysroot_get_fd(self_: *mut OstreeSysroot) -> c_int;
3153    pub fn ostree_sysroot_get_merge_deployment(
3154        self_: *mut OstreeSysroot,
3155        osname: *const c_char,
3156    ) -> *mut OstreeDeployment;
3157    pub fn ostree_sysroot_get_path(self_: *mut OstreeSysroot) -> *mut gio::GFile;
3158    pub fn ostree_sysroot_get_repo(
3159        self_: *mut OstreeSysroot,
3160        out_repo: *mut *mut OstreeRepo,
3161        cancellable: *mut gio::GCancellable,
3162        error: *mut *mut glib::GError,
3163    ) -> gboolean;
3164    #[cfg(feature = "v2018_5")]
3165    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_5")))]
3166    pub fn ostree_sysroot_get_staged_deployment(self_: *mut OstreeSysroot)
3167        -> *mut OstreeDeployment;
3168    pub fn ostree_sysroot_get_subbootversion(self_: *mut OstreeSysroot) -> c_int;
3169    #[cfg(feature = "v2016_4")]
3170    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_4")))]
3171    pub fn ostree_sysroot_init_osname(
3172        self_: *mut OstreeSysroot,
3173        osname: *const c_char,
3174        cancellable: *mut gio::GCancellable,
3175        error: *mut *mut glib::GError,
3176    ) -> gboolean;
3177    #[cfg(feature = "v2020_1")]
3178    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_1")))]
3179    pub fn ostree_sysroot_initialize(
3180        self_: *mut OstreeSysroot,
3181        error: *mut *mut glib::GError,
3182    ) -> gboolean;
3183    #[cfg(feature = "v2022_7")]
3184    #[cfg_attr(docsrs, doc(cfg(feature = "v2022_7")))]
3185    pub fn ostree_sysroot_initialize_with_mount_namespace(
3186        self_: *mut OstreeSysroot,
3187        cancellable: *mut gio::GCancellable,
3188        error: *mut *mut glib::GError,
3189    ) -> gboolean;
3190    #[cfg(feature = "v2020_1")]
3191    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_1")))]
3192    pub fn ostree_sysroot_is_booted(self_: *mut OstreeSysroot) -> gboolean;
3193    pub fn ostree_sysroot_load(
3194        self_: *mut OstreeSysroot,
3195        cancellable: *mut gio::GCancellable,
3196        error: *mut *mut glib::GError,
3197    ) -> gboolean;
3198    #[cfg(feature = "v2016_4")]
3199    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_4")))]
3200    pub fn ostree_sysroot_load_if_changed(
3201        self_: *mut OstreeSysroot,
3202        out_changed: *mut gboolean,
3203        cancellable: *mut gio::GCancellable,
3204        error: *mut *mut glib::GError,
3205    ) -> gboolean;
3206    pub fn ostree_sysroot_lock(
3207        self_: *mut OstreeSysroot,
3208        error: *mut *mut glib::GError,
3209    ) -> gboolean;
3210    pub fn ostree_sysroot_lock_async(
3211        self_: *mut OstreeSysroot,
3212        cancellable: *mut gio::GCancellable,
3213        callback: gio::GAsyncReadyCallback,
3214        user_data: gpointer,
3215    );
3216    pub fn ostree_sysroot_lock_finish(
3217        self_: *mut OstreeSysroot,
3218        result: *mut gio::GAsyncResult,
3219        error: *mut *mut glib::GError,
3220    ) -> gboolean;
3221    pub fn ostree_sysroot_origin_new_from_refspec(
3222        self_: *mut OstreeSysroot,
3223        refspec: *const c_char,
3224    ) -> *mut glib::GKeyFile;
3225    pub fn ostree_sysroot_prepare_cleanup(
3226        self_: *mut OstreeSysroot,
3227        cancellable: *mut gio::GCancellable,
3228        error: *mut *mut glib::GError,
3229    ) -> gboolean;
3230    #[cfg(feature = "v2017_7")]
3231    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_7")))]
3232    pub fn ostree_sysroot_query_deployments_for(
3233        self_: *mut OstreeSysroot,
3234        osname: *const c_char,
3235        out_pending: *mut *mut OstreeDeployment,
3236        out_rollback: *mut *mut OstreeDeployment,
3237    );
3238    #[cfg(feature = "v2017_7")]
3239    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_7")))]
3240    pub fn ostree_sysroot_repo(self_: *mut OstreeSysroot) -> *mut OstreeRepo;
3241    #[cfg(feature = "v2021_1")]
3242    #[cfg_attr(docsrs, doc(cfg(feature = "v2021_1")))]
3243    pub fn ostree_sysroot_require_booted_deployment(
3244        self_: *mut OstreeSysroot,
3245        error: *mut *mut glib::GError,
3246    ) -> *mut OstreeDeployment;
3247    #[cfg(feature = "v2020_1")]
3248    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_1")))]
3249    pub fn ostree_sysroot_set_mount_namespace_in_use(self_: *mut OstreeSysroot);
3250    pub fn ostree_sysroot_simple_write_deployment(
3251        sysroot: *mut OstreeSysroot,
3252        osname: *const c_char,
3253        new_deployment: *mut OstreeDeployment,
3254        merge_deployment: *mut OstreeDeployment,
3255        flags: OstreeSysrootSimpleWriteDeploymentFlags,
3256        cancellable: *mut gio::GCancellable,
3257        error: *mut *mut glib::GError,
3258    ) -> gboolean;
3259    #[cfg(feature = "v2020_7")]
3260    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_7")))]
3261    pub fn ostree_sysroot_stage_overlay_initrd(
3262        self_: *mut OstreeSysroot,
3263        fd: c_int,
3264        out_checksum: *mut *mut c_char,
3265        cancellable: *mut gio::GCancellable,
3266        error: *mut *mut glib::GError,
3267    ) -> gboolean;
3268    #[cfg(feature = "v2018_5")]
3269    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_5")))]
3270    pub fn ostree_sysroot_stage_tree(
3271        self_: *mut OstreeSysroot,
3272        osname: *const c_char,
3273        revision: *const c_char,
3274        origin: *mut glib::GKeyFile,
3275        merge_deployment: *mut OstreeDeployment,
3276        override_kernel_argv: *mut *mut c_char,
3277        out_new_deployment: *mut *mut OstreeDeployment,
3278        cancellable: *mut gio::GCancellable,
3279        error: *mut *mut glib::GError,
3280    ) -> gboolean;
3281    #[cfg(feature = "v2020_7")]
3282    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_7")))]
3283    pub fn ostree_sysroot_stage_tree_with_options(
3284        self_: *mut OstreeSysroot,
3285        osname: *const c_char,
3286        revision: *const c_char,
3287        origin: *mut glib::GKeyFile,
3288        merge_deployment: *mut OstreeDeployment,
3289        opts: *mut OstreeSysrootDeployTreeOpts,
3290        out_new_deployment: *mut *mut OstreeDeployment,
3291        cancellable: *mut gio::GCancellable,
3292        error: *mut *mut glib::GError,
3293    ) -> gboolean;
3294    pub fn ostree_sysroot_try_lock(
3295        self_: *mut OstreeSysroot,
3296        out_acquired: *mut gboolean,
3297        error: *mut *mut glib::GError,
3298    ) -> gboolean;
3299    pub fn ostree_sysroot_unload(self_: *mut OstreeSysroot);
3300    pub fn ostree_sysroot_unlock(self_: *mut OstreeSysroot);
3301    #[cfg(feature = "v2023_11")]
3302    #[cfg_attr(docsrs, doc(cfg(feature = "v2023_11")))]
3303    pub fn ostree_sysroot_update_post_copy(
3304        self_: *mut OstreeSysroot,
3305        cancellable: *mut gio::GCancellable,
3306        error: *mut *mut glib::GError,
3307    ) -> gboolean;
3308    pub fn ostree_sysroot_write_deployments(
3309        self_: *mut OstreeSysroot,
3310        new_deployments: *mut glib::GPtrArray,
3311        cancellable: *mut gio::GCancellable,
3312        error: *mut *mut glib::GError,
3313    ) -> gboolean;
3314    #[cfg(feature = "v2017_4")]
3315    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_4")))]
3316    pub fn ostree_sysroot_write_deployments_with_options(
3317        self_: *mut OstreeSysroot,
3318        new_deployments: *mut glib::GPtrArray,
3319        opts: *mut OstreeSysrootWriteDeploymentsOpts,
3320        cancellable: *mut gio::GCancellable,
3321        error: *mut *mut glib::GError,
3322    ) -> gboolean;
3323    pub fn ostree_sysroot_write_origin_file(
3324        sysroot: *mut OstreeSysroot,
3325        deployment: *mut OstreeDeployment,
3326        new_origin: *mut glib::GKeyFile,
3327        cancellable: *mut gio::GCancellable,
3328        error: *mut *mut glib::GError,
3329    ) -> gboolean;
3330
3331    //=========================================================================
3332    // OstreeSysrootUpgrader
3333    //=========================================================================
3334    pub fn ostree_sysroot_upgrader_get_type() -> GType;
3335    pub fn ostree_sysroot_upgrader_new(
3336        sysroot: *mut OstreeSysroot,
3337        cancellable: *mut gio::GCancellable,
3338        error: *mut *mut glib::GError,
3339    ) -> *mut OstreeSysrootUpgrader;
3340    pub fn ostree_sysroot_upgrader_new_for_os(
3341        sysroot: *mut OstreeSysroot,
3342        osname: *const c_char,
3343        cancellable: *mut gio::GCancellable,
3344        error: *mut *mut glib::GError,
3345    ) -> *mut OstreeSysrootUpgrader;
3346    pub fn ostree_sysroot_upgrader_new_for_os_with_flags(
3347        sysroot: *mut OstreeSysroot,
3348        osname: *const c_char,
3349        flags: OstreeSysrootUpgraderFlags,
3350        cancellable: *mut gio::GCancellable,
3351        error: *mut *mut glib::GError,
3352    ) -> *mut OstreeSysrootUpgrader;
3353    pub fn ostree_sysroot_upgrader_check_timestamps(
3354        repo: *mut OstreeRepo,
3355        from_rev: *const c_char,
3356        to_rev: *const c_char,
3357        error: *mut *mut glib::GError,
3358    ) -> gboolean;
3359    pub fn ostree_sysroot_upgrader_deploy(
3360        self_: *mut OstreeSysrootUpgrader,
3361        cancellable: *mut gio::GCancellable,
3362        error: *mut *mut glib::GError,
3363    ) -> gboolean;
3364    pub fn ostree_sysroot_upgrader_dup_origin(
3365        self_: *mut OstreeSysrootUpgrader,
3366    ) -> *mut glib::GKeyFile;
3367    pub fn ostree_sysroot_upgrader_get_origin(
3368        self_: *mut OstreeSysrootUpgrader,
3369    ) -> *mut glib::GKeyFile;
3370    pub fn ostree_sysroot_upgrader_get_origin_description(
3371        self_: *mut OstreeSysrootUpgrader,
3372    ) -> *mut c_char;
3373    pub fn ostree_sysroot_upgrader_pull(
3374        self_: *mut OstreeSysrootUpgrader,
3375        flags: OstreeRepoPullFlags,
3376        upgrader_flags: OstreeSysrootUpgraderPullFlags,
3377        progress: *mut OstreeAsyncProgress,
3378        out_changed: *mut gboolean,
3379        cancellable: *mut gio::GCancellable,
3380        error: *mut *mut glib::GError,
3381    ) -> gboolean;
3382    pub fn ostree_sysroot_upgrader_pull_one_dir(
3383        self_: *mut OstreeSysrootUpgrader,
3384        dir_to_pull: *const c_char,
3385        flags: OstreeRepoPullFlags,
3386        upgrader_flags: OstreeSysrootUpgraderPullFlags,
3387        progress: *mut OstreeAsyncProgress,
3388        out_changed: *mut gboolean,
3389        cancellable: *mut gio::GCancellable,
3390        error: *mut *mut glib::GError,
3391    ) -> gboolean;
3392    pub fn ostree_sysroot_upgrader_set_origin(
3393        self_: *mut OstreeSysrootUpgrader,
3394        origin: *mut glib::GKeyFile,
3395        cancellable: *mut gio::GCancellable,
3396        error: *mut *mut glib::GError,
3397    ) -> gboolean;
3398
3399    //=========================================================================
3400    // OstreeRepoFinder
3401    //=========================================================================
3402    pub fn ostree_repo_finder_get_type() -> GType;
3403    #[cfg(feature = "v2018_6")]
3404    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
3405    pub fn ostree_repo_finder_resolve_all_async(
3406        finders: *const *mut OstreeRepoFinder,
3407        refs: *const *const OstreeCollectionRef,
3408        parent_repo: *mut OstreeRepo,
3409        cancellable: *mut gio::GCancellable,
3410        callback: gio::GAsyncReadyCallback,
3411        user_data: gpointer,
3412    );
3413    #[cfg(feature = "v2018_6")]
3414    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
3415    pub fn ostree_repo_finder_resolve_all_finish(
3416        result: *mut gio::GAsyncResult,
3417        error: *mut *mut glib::GError,
3418    ) -> *mut glib::GPtrArray;
3419    #[cfg(feature = "v2018_6")]
3420    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
3421    pub fn ostree_repo_finder_resolve_async(
3422        self_: *mut OstreeRepoFinder,
3423        refs: *const *const OstreeCollectionRef,
3424        parent_repo: *mut OstreeRepo,
3425        cancellable: *mut gio::GCancellable,
3426        callback: gio::GAsyncReadyCallback,
3427        user_data: gpointer,
3428    );
3429    #[cfg(feature = "v2018_6")]
3430    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
3431    pub fn ostree_repo_finder_resolve_finish(
3432        self_: *mut OstreeRepoFinder,
3433        result: *mut gio::GAsyncResult,
3434        error: *mut *mut glib::GError,
3435    ) -> *mut glib::GPtrArray;
3436
3437    //=========================================================================
3438    // OstreeSign
3439    //=========================================================================
3440    pub fn ostree_sign_get_type() -> GType;
3441    #[cfg(feature = "v2020_2")]
3442    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3443    pub fn ostree_sign_get_all() -> *mut glib::GPtrArray;
3444    #[cfg(feature = "v2020_2")]
3445    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3446    pub fn ostree_sign_get_by_name(
3447        name: *const c_char,
3448        error: *mut *mut glib::GError,
3449    ) -> *mut OstreeSign;
3450    #[cfg(feature = "v2020_2")]
3451    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3452    pub fn ostree_sign_add_pk(
3453        self_: *mut OstreeSign,
3454        public_key: *mut glib::GVariant,
3455        error: *mut *mut glib::GError,
3456    ) -> gboolean;
3457    #[cfg(feature = "v2020_2")]
3458    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3459    pub fn ostree_sign_clear_keys(
3460        self_: *mut OstreeSign,
3461        error: *mut *mut glib::GError,
3462    ) -> gboolean;
3463    #[cfg(feature = "v2020_2")]
3464    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3465    pub fn ostree_sign_commit(
3466        self_: *mut OstreeSign,
3467        repo: *mut OstreeRepo,
3468        commit_checksum: *const c_char,
3469        cancellable: *mut gio::GCancellable,
3470        error: *mut *mut glib::GError,
3471    ) -> gboolean;
3472    #[cfg(feature = "v2020_2")]
3473    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3474    pub fn ostree_sign_commit_verify(
3475        self_: *mut OstreeSign,
3476        repo: *mut OstreeRepo,
3477        commit_checksum: *const c_char,
3478        out_success_message: *mut *mut c_char,
3479        cancellable: *mut gio::GCancellable,
3480        error: *mut *mut glib::GError,
3481    ) -> gboolean;
3482    #[cfg(feature = "v2020_2")]
3483    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3484    pub fn ostree_sign_data(
3485        self_: *mut OstreeSign,
3486        data: *mut glib::GBytes,
3487        signature: *mut *mut glib::GBytes,
3488        cancellable: *mut gio::GCancellable,
3489        error: *mut *mut glib::GError,
3490    ) -> gboolean;
3491    #[cfg(feature = "v2020_2")]
3492    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3493    pub fn ostree_sign_data_verify(
3494        self_: *mut OstreeSign,
3495        data: *mut glib::GBytes,
3496        signatures: *mut glib::GVariant,
3497        out_success_message: *mut *mut c_char,
3498        error: *mut *mut glib::GError,
3499    ) -> gboolean;
3500    pub fn ostree_sign_ed25519_add_pk(
3501        self_: *mut OstreeSign,
3502        public_key: *mut glib::GVariant,
3503        error: *mut *mut glib::GError,
3504    ) -> gboolean;
3505    pub fn ostree_sign_ed25519_clear_keys(
3506        self_: *mut OstreeSign,
3507        error: *mut *mut glib::GError,
3508    ) -> gboolean;
3509    pub fn ostree_sign_ed25519_data(
3510        self_: *mut OstreeSign,
3511        data: *mut glib::GBytes,
3512        signature: *mut *mut glib::GBytes,
3513        cancellable: *mut gio::GCancellable,
3514        error: *mut *mut glib::GError,
3515    ) -> gboolean;
3516    pub fn ostree_sign_ed25519_data_verify(
3517        self_: *mut OstreeSign,
3518        data: *mut glib::GBytes,
3519        signatures: *mut glib::GVariant,
3520        out_success_message: *mut *mut c_char,
3521        error: *mut *mut glib::GError,
3522    ) -> gboolean;
3523    pub fn ostree_sign_ed25519_get_name(self_: *mut OstreeSign) -> *const c_char;
3524    pub fn ostree_sign_ed25519_load_pk(
3525        self_: *mut OstreeSign,
3526        options: *mut glib::GVariant,
3527        error: *mut *mut glib::GError,
3528    ) -> gboolean;
3529    pub fn ostree_sign_ed25519_metadata_format(self_: *mut OstreeSign) -> *const c_char;
3530    pub fn ostree_sign_ed25519_metadata_key(self_: *mut OstreeSign) -> *const c_char;
3531    pub fn ostree_sign_ed25519_set_pk(
3532        self_: *mut OstreeSign,
3533        public_key: *mut glib::GVariant,
3534        error: *mut *mut glib::GError,
3535    ) -> gboolean;
3536    pub fn ostree_sign_ed25519_set_sk(
3537        self_: *mut OstreeSign,
3538        secret_key: *mut glib::GVariant,
3539        error: *mut *mut glib::GError,
3540    ) -> gboolean;
3541    #[cfg(feature = "v2020_2")]
3542    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3543    pub fn ostree_sign_get_name(self_: *mut OstreeSign) -> *const c_char;
3544    #[cfg(feature = "v2020_2")]
3545    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3546    pub fn ostree_sign_load_pk(
3547        self_: *mut OstreeSign,
3548        options: *mut glib::GVariant,
3549        error: *mut *mut glib::GError,
3550    ) -> gboolean;
3551    #[cfg(feature = "v2020_2")]
3552    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3553    pub fn ostree_sign_metadata_format(self_: *mut OstreeSign) -> *const c_char;
3554    #[cfg(feature = "v2020_2")]
3555    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3556    pub fn ostree_sign_metadata_key(self_: *mut OstreeSign) -> *const c_char;
3557    #[cfg(feature = "v2020_2")]
3558    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3559    pub fn ostree_sign_set_pk(
3560        self_: *mut OstreeSign,
3561        public_key: *mut glib::GVariant,
3562        error: *mut *mut glib::GError,
3563    ) -> gboolean;
3564    #[cfg(feature = "v2020_2")]
3565    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3566    pub fn ostree_sign_set_sk(
3567        self_: *mut OstreeSign,
3568        secret_key: *mut glib::GVariant,
3569        error: *mut *mut glib::GError,
3570    ) -> gboolean;
3571    #[cfg(feature = "v2020_2")]
3572    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_2")))]
3573    pub fn ostree_sign_summary(
3574        self_: *mut OstreeSign,
3575        repo: *mut OstreeRepo,
3576        keys: *mut glib::GVariant,
3577        cancellable: *mut gio::GCancellable,
3578        error: *mut *mut glib::GError,
3579    ) -> gboolean;
3580
3581    //=========================================================================
3582    // Other functions
3583    //=========================================================================
3584    #[cfg(feature = "v2017_15")]
3585    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_15")))]
3586    pub fn ostree_break_hardlink(
3587        dfd: c_int,
3588        path: *const c_char,
3589        skip_xattrs: gboolean,
3590        cancellable: *mut gio::GCancellable,
3591        error: *mut *mut glib::GError,
3592    ) -> gboolean;
3593    #[cfg(feature = "v2017_4")]
3594    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_4")))]
3595    pub fn ostree_check_version(required_year: c_uint, required_release: c_uint) -> gboolean;
3596    #[cfg(feature = "v2016_8")]
3597    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_8")))]
3598    pub fn ostree_checksum_b64_from_bytes(csum: *const [c_uchar; 32]) -> *mut c_char;
3599    pub fn ostree_checksum_b64_inplace_from_bytes(csum: *const [c_uchar; 32], buf: *mut c_char);
3600    pub fn ostree_checksum_b64_inplace_to_bytes(checksum: *const [c_char; 32], buf: *mut u8);
3601    #[cfg(feature = "v2016_8")]
3602    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_8")))]
3603    pub fn ostree_checksum_b64_to_bytes(checksum: *const c_char) -> *mut [c_uchar; 32];
3604    pub fn ostree_checksum_bytes_peek(bytes: *mut glib::GVariant) -> *const [c_uchar; 32];
3605    pub fn ostree_checksum_bytes_peek_validate(
3606        bytes: *mut glib::GVariant,
3607        error: *mut *mut glib::GError,
3608    ) -> *const [c_uchar; 32];
3609    pub fn ostree_checksum_file(
3610        f: *mut gio::GFile,
3611        objtype: OstreeObjectType,
3612        out_csum: *mut *mut [*mut u8; 32],
3613        cancellable: *mut gio::GCancellable,
3614        error: *mut *mut glib::GError,
3615    ) -> gboolean;
3616    pub fn ostree_checksum_file_async(
3617        f: *mut gio::GFile,
3618        objtype: OstreeObjectType,
3619        io_priority: c_int,
3620        cancellable: *mut gio::GCancellable,
3621        callback: gio::GAsyncReadyCallback,
3622        user_data: gpointer,
3623    );
3624    pub fn ostree_checksum_file_async_finish(
3625        f: *mut gio::GFile,
3626        result: *mut gio::GAsyncResult,
3627        out_csum: *mut *mut [*mut u8; 32],
3628        error: *mut *mut glib::GError,
3629    ) -> gboolean;
3630    #[cfg(feature = "v2017_13")]
3631    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_13")))]
3632    pub fn ostree_checksum_file_at(
3633        dfd: c_int,
3634        path: *const c_char,
3635        stbuf: *mut stat,
3636        objtype: OstreeObjectType,
3637        flags: OstreeChecksumFlags,
3638        out_checksum: *mut *mut c_char,
3639        cancellable: *mut gio::GCancellable,
3640        error: *mut *mut glib::GError,
3641    ) -> gboolean;
3642    pub fn ostree_checksum_file_from_input(
3643        file_info: *mut gio::GFileInfo,
3644        xattrs: *mut glib::GVariant,
3645        in_: *mut gio::GInputStream,
3646        objtype: OstreeObjectType,
3647        out_csum: *mut *mut [*mut u8; 32],
3648        cancellable: *mut gio::GCancellable,
3649        error: *mut *mut glib::GError,
3650    ) -> gboolean;
3651    pub fn ostree_checksum_from_bytes(csum: *const [c_uchar; 32]) -> *mut c_char;
3652    pub fn ostree_checksum_from_bytes_v(csum_v: *mut glib::GVariant) -> *mut c_char;
3653    pub fn ostree_checksum_inplace_from_bytes(csum: *const [c_uchar; 32], buf: *mut c_char);
3654    pub fn ostree_checksum_inplace_to_bytes(checksum: *const c_char, buf: *mut u8);
3655    pub fn ostree_checksum_to_bytes(checksum: *const c_char) -> *mut [c_uchar; 32];
3656    pub fn ostree_checksum_to_bytes_v(checksum: *const c_char) -> *mut glib::GVariant;
3657    pub fn ostree_cmp_checksum_bytes(a: *const u8, b: *const u8) -> c_int;
3658    #[cfg(feature = "v2018_2")]
3659    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_2")))]
3660    pub fn ostree_commit_get_content_checksum(commit_variant: *mut glib::GVariant) -> *mut c_char;
3661    #[cfg(feature = "v2020_1")]
3662    #[cfg_attr(docsrs, doc(cfg(feature = "v2020_1")))]
3663    pub fn ostree_commit_get_object_sizes(
3664        commit_variant: *mut glib::GVariant,
3665        out_sizes_entries: *mut *mut glib::GPtrArray,
3666        error: *mut *mut glib::GError,
3667    ) -> gboolean;
3668    pub fn ostree_commit_get_parent(commit_variant: *mut glib::GVariant) -> *mut c_char;
3669    #[cfg(feature = "v2016_3")]
3670    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_3")))]
3671    pub fn ostree_commit_get_timestamp(commit_variant: *mut glib::GVariant) -> u64;
3672    #[cfg(feature = "v2021_1")]
3673    #[cfg_attr(docsrs, doc(cfg(feature = "v2021_1")))]
3674    pub fn ostree_commit_metadata_for_bootable(
3675        root: *mut gio::GFile,
3676        dict: *mut glib::GVariantDict,
3677        cancellable: *mut gio::GCancellable,
3678        error: *mut *mut glib::GError,
3679    ) -> gboolean;
3680    pub fn ostree_content_file_parse(
3681        compressed: gboolean,
3682        content_path: *mut gio::GFile,
3683        trusted: gboolean,
3684        out_input: *mut *mut gio::GInputStream,
3685        out_file_info: *mut *mut gio::GFileInfo,
3686        out_xattrs: *mut *mut glib::GVariant,
3687        cancellable: *mut gio::GCancellable,
3688        error: *mut *mut glib::GError,
3689    ) -> gboolean;
3690    pub fn ostree_content_file_parse_at(
3691        compressed: gboolean,
3692        parent_dfd: c_int,
3693        path: *const c_char,
3694        trusted: gboolean,
3695        out_input: *mut *mut gio::GInputStream,
3696        out_file_info: *mut *mut gio::GFileInfo,
3697        out_xattrs: *mut *mut glib::GVariant,
3698        cancellable: *mut gio::GCancellable,
3699        error: *mut *mut glib::GError,
3700    ) -> gboolean;
3701    pub fn ostree_content_stream_parse(
3702        compressed: gboolean,
3703        input: *mut gio::GInputStream,
3704        input_length: u64,
3705        trusted: gboolean,
3706        out_input: *mut *mut gio::GInputStream,
3707        out_file_info: *mut *mut gio::GFileInfo,
3708        out_xattrs: *mut *mut glib::GVariant,
3709        cancellable: *mut gio::GCancellable,
3710        error: *mut *mut glib::GError,
3711    ) -> gboolean;
3712    pub fn ostree_create_directory_metadata(
3713        dir_info: *mut gio::GFileInfo,
3714        xattrs: *mut glib::GVariant,
3715    ) -> *mut glib::GVariant;
3716    pub fn ostree_diff_dirs(
3717        flags: OstreeDiffFlags,
3718        a: *mut gio::GFile,
3719        b: *mut gio::GFile,
3720        modified: *mut glib::GPtrArray,
3721        removed: *mut glib::GPtrArray,
3722        added: *mut glib::GPtrArray,
3723        cancellable: *mut gio::GCancellable,
3724        error: *mut *mut glib::GError,
3725    ) -> gboolean;
3726    #[cfg(feature = "v2017_4")]
3727    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_4")))]
3728    pub fn ostree_diff_dirs_with_options(
3729        flags: OstreeDiffFlags,
3730        a: *mut gio::GFile,
3731        b: *mut gio::GFile,
3732        modified: *mut glib::GPtrArray,
3733        removed: *mut glib::GPtrArray,
3734        added: *mut glib::GPtrArray,
3735        options: *mut OstreeDiffDirsOptions,
3736        cancellable: *mut gio::GCancellable,
3737        error: *mut *mut glib::GError,
3738    ) -> gboolean;
3739    pub fn ostree_diff_print(
3740        a: *mut gio::GFile,
3741        b: *mut gio::GFile,
3742        modified: *mut glib::GPtrArray,
3743        removed: *mut glib::GPtrArray,
3744        added: *mut glib::GPtrArray,
3745    );
3746    pub fn ostree_fs_get_all_xattrs(
3747        fd: c_int,
3748        cancellable: *mut gio::GCancellable,
3749        error: *mut *mut glib::GError,
3750    ) -> *mut glib::GVariant;
3751    pub fn ostree_fs_get_all_xattrs_at(
3752        dfd: c_int,
3753        path: *const c_char,
3754        cancellable: *mut gio::GCancellable,
3755        error: *mut *mut glib::GError,
3756    ) -> *mut glib::GVariant;
3757    #[cfg(feature = "v2017_10")]
3758    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_10")))]
3759    pub fn ostree_gpg_error_quark() -> glib::GQuark;
3760    pub fn ostree_hash_object_name(a: gconstpointer) -> c_uint;
3761    pub fn ostree_metadata_variant_type(objtype: OstreeObjectType) -> *const glib::GVariantType;
3762    pub fn ostree_object_from_string(
3763        str: *const c_char,
3764        out_checksum: *mut *mut c_char,
3765        out_objtype: *mut OstreeObjectType,
3766    );
3767    pub fn ostree_object_name_deserialize(
3768        variant: *mut glib::GVariant,
3769        out_checksum: *mut *const c_char,
3770        out_objtype: *mut OstreeObjectType,
3771    );
3772    pub fn ostree_object_name_serialize(
3773        checksum: *const c_char,
3774        objtype: OstreeObjectType,
3775    ) -> *mut glib::GVariant;
3776    pub fn ostree_object_to_string(
3777        checksum: *const c_char,
3778        objtype: OstreeObjectType,
3779    ) -> *mut c_char;
3780    pub fn ostree_object_type_from_string(str: *const c_char) -> OstreeObjectType;
3781    pub fn ostree_object_type_to_string(objtype: OstreeObjectType) -> *const c_char;
3782    pub fn ostree_parse_refspec(
3783        refspec: *const c_char,
3784        out_remote: *mut *mut c_char,
3785        out_ref: *mut *mut c_char,
3786        error: *mut *mut glib::GError,
3787    ) -> gboolean;
3788    #[cfg(feature = "v2016_6")]
3789    #[cfg_attr(docsrs, doc(cfg(feature = "v2016_6")))]
3790    pub fn ostree_raw_file_to_archive_z2_stream(
3791        input: *mut gio::GInputStream,
3792        file_info: *mut gio::GFileInfo,
3793        xattrs: *mut glib::GVariant,
3794        out_input: *mut *mut gio::GInputStream,
3795        cancellable: *mut gio::GCancellable,
3796        error: *mut *mut glib::GError,
3797    ) -> gboolean;
3798    #[cfg(feature = "v2017_3")]
3799    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_3")))]
3800    pub fn ostree_raw_file_to_archive_z2_stream_with_options(
3801        input: *mut gio::GInputStream,
3802        file_info: *mut gio::GFileInfo,
3803        xattrs: *mut glib::GVariant,
3804        options: *mut glib::GVariant,
3805        out_input: *mut *mut gio::GInputStream,
3806        cancellable: *mut gio::GCancellable,
3807        error: *mut *mut glib::GError,
3808    ) -> gboolean;
3809    pub fn ostree_raw_file_to_content_stream(
3810        input: *mut gio::GInputStream,
3811        file_info: *mut gio::GFileInfo,
3812        xattrs: *mut glib::GVariant,
3813        out_input: *mut *mut gio::GInputStream,
3814        out_length: *mut u64,
3815        cancellable: *mut gio::GCancellable,
3816        error: *mut *mut glib::GError,
3817    ) -> gboolean;
3818    pub fn ostree_validate_checksum_string(
3819        sha256: *const c_char,
3820        error: *mut *mut glib::GError,
3821    ) -> gboolean;
3822    #[cfg(feature = "v2018_6")]
3823    #[cfg_attr(docsrs, doc(cfg(feature = "v2018_6")))]
3824    pub fn ostree_validate_collection_id(
3825        collection_id: *const c_char,
3826        error: *mut *mut glib::GError,
3827    ) -> gboolean;
3828    #[cfg(feature = "v2017_8")]
3829    #[cfg_attr(docsrs, doc(cfg(feature = "v2017_8")))]
3830    pub fn ostree_validate_remote_name(
3831        remote_name: *const c_char,
3832        error: *mut *mut glib::GError,
3833    ) -> gboolean;
3834    pub fn ostree_validate_rev(rev: *const c_char, error: *mut *mut glib::GError) -> gboolean;
3835    pub fn ostree_validate_structureof_checksum_string(
3836        checksum: *const c_char,
3837        error: *mut *mut glib::GError,
3838    ) -> gboolean;
3839    pub fn ostree_validate_structureof_commit(
3840        commit: *mut glib::GVariant,
3841        error: *mut *mut glib::GError,
3842    ) -> gboolean;
3843    pub fn ostree_validate_structureof_csum_v(
3844        checksum: *mut glib::GVariant,
3845        error: *mut *mut glib::GError,
3846    ) -> gboolean;
3847    pub fn ostree_validate_structureof_dirmeta(
3848        dirmeta: *mut glib::GVariant,
3849        error: *mut *mut glib::GError,
3850    ) -> gboolean;
3851    pub fn ostree_validate_structureof_dirtree(
3852        dirtree: *mut glib::GVariant,
3853        error: *mut *mut glib::GError,
3854    ) -> gboolean;
3855    pub fn ostree_validate_structureof_file_mode(
3856        mode: u32,
3857        error: *mut *mut glib::GError,
3858    ) -> gboolean;
3859    pub fn ostree_validate_structureof_objtype(
3860        objtype: c_uchar,
3861        error: *mut *mut glib::GError,
3862    ) -> gboolean;
3863
3864}