libglycin-rebind-sys-0.0.1/.cargo_vcs_info.json0000644000000002030000000000100150560ustar { "git": { "sha1": "fbb5e5d630e7430bd73ce6a97bc31abd0d7752f0" }, "path_in_vcs": "libglycin-rebind/libglycin-rebind/sys" }libglycin-rebind-sys-0.0.1/Cargo.lock0000644000000222660000000000100130460ustar # This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 4 [[package]] name = "bitflags" version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "cfg-expr" version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9acd0bdbbf4b2612d09f52ba61da432140cb10930354079d0d53fafc12968726" dependencies = [ "smallvec", "target-lexicon", ] [[package]] name = "cfg-if" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", "windows-sys", ] [[package]] name = "fastrand" version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "getrandom" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", "r-efi", "wasip2", ] [[package]] name = "gio-sys" version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "171ed2f6dd927abbe108cfd9eebff2052c335013f5879d55bab0dc1dee19b706" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", "windows-sys", ] [[package]] name = "glib-sys" version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d09d3d0fddf7239521674e57b0465dfbd844632fec54f059f7f56112e3f927e1" dependencies = [ "libc", "system-deps", ] [[package]] name = "gobject-sys" version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "538e41d8776173ec107e7b0f2aceced60abc368d7e1d81c1f0e2ecd35f59080d" dependencies = [ "glib-sys", "libc", "system-deps", ] [[package]] name = "hashbrown" version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "indexmap" version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", "hashbrown", ] [[package]] name = "libc" version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libglycin-rebind-sys" version = "0.0.1" dependencies = [ "gio-sys", "glib-sys", "gobject-sys", "libc", "shell-words", "system-deps", "tempfile", ] [[package]] name = "linux-raw-sys" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "pkg-config" version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "proc-macro2" version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] [[package]] name = "quote" version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rustix" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ "bitflags", "errno", "libc", "linux-raw-sys", "windows-sys", ] [[package]] name = "serde_core" version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", "syn", ] [[package]] name = "serde_spanned" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" dependencies = [ "serde_core", ] [[package]] name = "shell-words" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" [[package]] name = "smallvec" version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "syn" version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] [[package]] name = "system-deps" version = "7.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c8f33736f986f16d69b6cb8b03f55ddcad5c41acc4ccc39dd88e84aa805e7f" dependencies = [ "cfg-expr", "heck", "pkg-config", "toml", "version-compare", ] [[package]] name = "target-lexicon" version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c" [[package]] name = "tempfile" version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", "getrandom", "once_cell", "rustix", "windows-sys", ] [[package]] name = "toml" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" dependencies = [ "indexmap", "serde_core", "serde_spanned", "toml_datetime", "toml_parser", "toml_writer", "winnow", ] [[package]] name = "toml_datetime" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" dependencies = [ "serde_core", ] [[package]] name = "toml_parser" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" dependencies = [ "winnow", ] [[package]] name = "toml_writer" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" [[package]] name = "unicode-ident" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "version-compare" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" [[package]] name = "wasip2" version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ "wit-bindgen", ] [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-sys" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ "windows-link", ] [[package]] name = "winnow" version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" [[package]] name = "wit-bindgen" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" libglycin-rebind-sys-0.0.1/Cargo.toml0000644000000033400000000000100130610ustar # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" rust-version = "1.85" name = "libglycin-rebind-sys" version = "0.0.1" build = "build.rs" links = "glycin-2" exclude = ["Gir.toml"] autolib = false autobins = false autoexamples = false autotests = false autobenches = false description = "FFI bindings for libglycin" homepage = "https://gnome.pages.gitlab.gnome.org/glycin/" readme = false keywords = [ "gnome", "glycin", ] categories = ["api-bindings"] license = "MIT" repository = "https://gitlab.gnome.org/GNOME/glycin" [package.metadata.system-deps.glycin_2] name = "glycin-2" version = "2" [package.metadata.system-deps.glycin_2.v2] version = "2" [package.metadata.system-deps.glycin_2.v2_0_1] version = "2.0.1" [package.metadata.docs.rs] features = [] rustc-args = [ "--cfg", "docsrs", ] rustdoc-args = [ "--cfg", "docsrs", "--generate-link-to-definition", ] [features] [lib] name = "libglycin_rebind_sys" path = "src/lib.rs" [[test]] name = "abi" path = "tests/abi.rs" [dependencies.gio-sys] version = "0.21" [dependencies.glib-sys] version = "0.21" [dependencies.gobject-sys] version = "0.21" [dependencies.libc] version = "0.2" [dev-dependencies.shell-words] version = "1.0.0" [dev-dependencies.tempfile] version = "3" [build-dependencies.system-deps] version = "7" libglycin-rebind-sys-0.0.1/Cargo.toml.orig000064400000000000000000000016471046102023000165520ustar 00000000000000[package] name = "libglycin-rebind-sys" version = "0.0.1" links = "glycin-2" edition.workspace = true rust-version.workspace = true categories = ["api-bindings"] keywords = ["gnome", "glycin"] description = "FFI bindings for libglycin" license = "MIT" homepage.workspace = true repository.workspace = true exclude = ["Gir.toml"] [package.metadata.system-deps.glycin_2] name = "glycin-2" version = "2" [package.metadata.system-deps.glycin_2.v2] version = "2" [package.metadata.system-deps.glycin_2.v2_0_1] version = "2.0.1" [package.metadata.docs.rs] features = [] rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"] [dependencies] libc = "0.2" [dependencies.gio-sys] version = "0.21" [dependencies.glib-sys] version = "0.21" [dependencies.gobject-sys] version = "0.21" [build-dependencies] system-deps = "7" [dev-dependencies] shell-words = "1.0.0" tempfile = "3" [features] libglycin-rebind-sys-0.0.1/LICENSE000064400000000000000000000017771046102023000146740ustar 00000000000000Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. libglycin-rebind-sys-0.0.1/build.rs000064400000000000000000000006631046102023000153250ustar 00000000000000// Generated by gir (https://github.com/gtk-rs/gir @ 85fe8474df07) // from (@ 9ebb5d4f5f61+) // from gir-files (@ b87d34dc3455) // DO NOT EDIT #[cfg(not(docsrs))] use std::process; #[cfg(docsrs)] fn main() {} // prevent linking libraries to avoid documentation failure #[cfg(not(docsrs))] fn main() { if let Err(s) = system_deps::Config::new().probe() { println!("cargo:warning={s}"); process::exit(1); } } libglycin-rebind-sys-0.0.1/src/lib.rs000064400000000000000000000460641046102023000155700ustar 00000000000000// Generated by gir (https://github.com/gtk-rs/gir @ 85fe8474df07) // from (@ 9ebb5d4f5f61+) // from gir-files (@ b87d34dc3455) // DO NOT EDIT #![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)] #![allow( clippy::approx_constant, clippy::type_complexity, clippy::unreadable_literal, clippy::upper_case_acronyms )] #![cfg_attr(docsrs, feature(doc_cfg))] #[allow(unused_imports)] use std::ffi::{ c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, }; #[allow(unused_imports)] use glib::{gboolean, gconstpointer, gpointer, GType}; #[cfg(unix)] #[allow(unused_imports)] use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t}; #[allow(unused_imports)] use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE}; use {gio_sys as gio, glib_sys as glib, gobject_sys as gobject}; // Enums pub type GlyLoaderError = c_int; pub const GLY_LOADER_ERROR_FAILED: GlyLoaderError = 0; pub const GLY_LOADER_ERROR_UNKNOWN_IMAGE_FORMAT: GlyLoaderError = 1; pub const GLY_LOADER_ERROR_NO_MORE_FRAMES: GlyLoaderError = 2; pub type GlyMemoryFormat = c_int; pub const GLY_MEMORY_B8G8R8A8_PREMULTIPLIED: GlyMemoryFormat = 0; pub const GLY_MEMORY_A8R8G8B8_PREMULTIPLIED: GlyMemoryFormat = 1; pub const GLY_MEMORY_R8G8B8A8_PREMULTIPLIED: GlyMemoryFormat = 2; pub const GLY_MEMORY_B8G8R8A8: GlyMemoryFormat = 3; pub const GLY_MEMORY_A8R8G8B8: GlyMemoryFormat = 4; pub const GLY_MEMORY_R8G8B8A8: GlyMemoryFormat = 5; pub const GLY_MEMORY_A8B8G8R8: GlyMemoryFormat = 6; pub const GLY_MEMORY_R8G8B8: GlyMemoryFormat = 7; pub const GLY_MEMORY_B8G8R8: GlyMemoryFormat = 8; pub const GLY_MEMORY_R16G16B16: GlyMemoryFormat = 9; pub const GLY_MEMORY_R16G16B16A16_PREMULTIPLIED: GlyMemoryFormat = 10; pub const GLY_MEMORY_R16G16B16A16: GlyMemoryFormat = 11; pub const GLY_MEMORY_R16G16B16_FLOAT: GlyMemoryFormat = 12; pub const GLY_MEMORY_R16G16B16A16_FLOAT: GlyMemoryFormat = 13; pub const GLY_MEMORY_R32G32B32_FLOAT: GlyMemoryFormat = 14; pub const GLY_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED: GlyMemoryFormat = 15; pub const GLY_MEMORY_R32G32B32A32_FLOAT: GlyMemoryFormat = 16; pub const GLY_MEMORY_G8A8_PREMULTIPLIED: GlyMemoryFormat = 17; pub const GLY_MEMORY_G8A8: GlyMemoryFormat = 18; pub const GLY_MEMORY_G8: GlyMemoryFormat = 19; pub const GLY_MEMORY_G16A16_PREMULTIPLIED: GlyMemoryFormat = 20; pub const GLY_MEMORY_G16A16: GlyMemoryFormat = 21; pub const GLY_MEMORY_G16: GlyMemoryFormat = 22; pub type GlySandboxSelector = c_int; pub const GLY_SANDBOX_SELECTOR_AUTO: GlySandboxSelector = 0; pub const GLY_SANDBOX_SELECTOR_BWRAP: GlySandboxSelector = 1; pub const GLY_SANDBOX_SELECTOR_FLATPAK_SPAWN: GlySandboxSelector = 2; pub const GLY_SANDBOX_SELECTOR_NOT_SANDBOXED: GlySandboxSelector = 3; // Flags pub type GlyMemoryFormatSelection = c_uint; pub const GLY_MEMORY_SELECTION_B8G8R8A8_PREMULTIPLIED: GlyMemoryFormatSelection = 1; pub const GLY_MEMORY_SELECTION_A8R8G8B8_PREMULTIPLIED: GlyMemoryFormatSelection = 2; pub const GLY_MEMORY_SELECTION_R8G8B8A8_PREMULTIPLIED: GlyMemoryFormatSelection = 4; pub const GLY_MEMORY_SELECTION_B8G8R8A8: GlyMemoryFormatSelection = 8; pub const GLY_MEMORY_SELECTION_A8R8G8B8: GlyMemoryFormatSelection = 16; pub const GLY_MEMORY_SELECTION_R8G8B8A8: GlyMemoryFormatSelection = 32; pub const GLY_MEMORY_SELECTION_A8B8G8R8: GlyMemoryFormatSelection = 64; pub const GLY_MEMORY_SELECTION_R8G8B8: GlyMemoryFormatSelection = 128; pub const GLY_MEMORY_SELECTION_B8G8R8: GlyMemoryFormatSelection = 256; pub const GLY_MEMORY_SELECTION_R16G16B16: GlyMemoryFormatSelection = 512; pub const GLY_MEMORY_SELECTION_R16G16B16A16_PREMULTIPLIED: GlyMemoryFormatSelection = 1024; pub const GLY_MEMORY_SELECTION_R16G16B16A16: GlyMemoryFormatSelection = 2048; pub const GLY_MEMORY_SELECTION_R16G16B16_FLOAT: GlyMemoryFormatSelection = 4096; pub const GLY_MEMORY_SELECTION_R16G16B16A16_FLOAT: GlyMemoryFormatSelection = 8192; pub const GLY_MEMORY_SELECTION_R32G32B32_FLOAT: GlyMemoryFormatSelection = 16384; pub const GLY_MEMORY_SELECTION_R32G32B32A32_FLOAT_PREMULTIPLIED: GlyMemoryFormatSelection = 32768; pub const GLY_MEMORY_SELECTION_R32G32B32A32_FLOAT: GlyMemoryFormatSelection = 65536; pub const GLY_MEMORY_SELECTION_G8A8_PREMULTIPLIED: GlyMemoryFormatSelection = 131072; pub const GLY_MEMORY_SELECTION_G8A8: GlyMemoryFormatSelection = 262144; pub const GLY_MEMORY_SELECTION_G8: GlyMemoryFormatSelection = 524288; pub const GLY_MEMORY_SELECTION_G16A16_PREMULTIPLIED: GlyMemoryFormatSelection = 1048576; pub const GLY_MEMORY_SELECTION_G16A16: GlyMemoryFormatSelection = 2097152; pub const GLY_MEMORY_SELECTION_G16: GlyMemoryFormatSelection = 4194304; // Callbacks pub type GlyLoaderGetMimeTypesDoneFunc = Option; // Records #[derive(Copy, Clone)] #[repr(C)] pub struct GlyCicp { pub color_primaries: u8, pub transfer_characteristics: u8, pub matrix_coefficients: u8, pub video_full_range_flag: u8, } impl ::std::fmt::Debug for GlyCicp { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyCicp @ {self:p}")) .field("color_primaries", &self.color_primaries) .field("transfer_characteristics", &self.transfer_characteristics) .field("matrix_coefficients", &self.matrix_coefficients) .field("video_full_range_flag", &self.video_full_range_flag) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GlyCreatorClass { pub parent_class: gobject::GObjectClass, } impl ::std::fmt::Debug for GlyCreatorClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyCreatorClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GlyEncodedImageClass { pub parent_class: gobject::GObjectClass, } impl ::std::fmt::Debug for GlyEncodedImageClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyEncodedImageClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GlyFrameClass { pub parent_class: gobject::GObjectClass, } impl ::std::fmt::Debug for GlyFrameClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyFrameClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GlyFrameRequestClass { pub parent_class: gobject::GObjectClass, } impl ::std::fmt::Debug for GlyFrameRequestClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyFrameRequestClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GlyImageClass { pub parent_class: gobject::GObjectClass, } impl ::std::fmt::Debug for GlyImageClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyImageClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GlyLoaderClass { pub parent_class: gobject::GObjectClass, } impl ::std::fmt::Debug for GlyLoaderClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyLoaderClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GlyNewFrameClass { pub parent_class: gobject::GObjectClass, } impl ::std::fmt::Debug for GlyNewFrameClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyNewFrameClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } // Classes #[repr(C)] #[allow(dead_code)] pub struct GlyCreator { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GlyCreator { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyCreator @ {self:p}")).finish() } } #[repr(C)] #[allow(dead_code)] pub struct GlyEncodedImage { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GlyEncodedImage { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyEncodedImage @ {self:p}")) .finish() } } #[repr(C)] #[allow(dead_code)] pub struct GlyFrame { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GlyFrame { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyFrame @ {self:p}")).finish() } } #[repr(C)] #[allow(dead_code)] pub struct GlyFrameRequest { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GlyFrameRequest { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyFrameRequest @ {self:p}")) .finish() } } #[repr(C)] #[allow(dead_code)] pub struct GlyImage { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GlyImage { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyImage @ {self:p}")).finish() } } #[repr(C)] #[allow(dead_code)] pub struct GlyLoader { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GlyLoader { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyLoader @ {self:p}")).finish() } } #[repr(C)] #[allow(dead_code)] pub struct GlyNewFrame { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GlyNewFrame { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GlyNewFrame @ {self:p}")).finish() } } extern "C" { //========================================================================= // GlyLoaderError //========================================================================= pub fn gly_loader_error_get_type() -> GType; pub fn gly_loader_error_quark() -> glib::GQuark; //========================================================================= // GlyMemoryFormat //========================================================================= pub fn gly_memory_format_get_type() -> GType; pub fn gly_memory_format_has_alpha(memory_format: GlyMemoryFormat) -> gboolean; pub fn gly_memory_format_is_premultiplied(memory_format: GlyMemoryFormat) -> gboolean; //========================================================================= // GlySandboxSelector //========================================================================= pub fn gly_sandbox_selector_get_type() -> GType; //========================================================================= // GlyMemoryFormatSelection //========================================================================= pub fn gly_memory_format_selection_get_type() -> GType; //========================================================================= // GlyCicp //========================================================================= pub fn gly_cicp_get_type() -> GType; pub fn gly_cicp_copy(cicp: *mut GlyCicp) -> *mut GlyCicp; pub fn gly_cicp_free(cicp: *mut GlyCicp); //========================================================================= // GlyCreator //========================================================================= pub fn gly_creator_get_type() -> GType; pub fn gly_creator_new( mime_type: *const c_char, error: *mut *mut glib::GError, ) -> *mut GlyCreator; pub fn gly_creator_add_frame( creator: *mut GlyCreator, width: u32, height: u32, memory_format: GlyMemoryFormat, texture: *mut glib::GBytes, error: *mut *mut glib::GError, ) -> *mut GlyNewFrame; pub fn gly_creator_add_frame_with_stride( creator: *mut GlyCreator, width: u32, height: u32, stride: u32, memory_format: GlyMemoryFormat, texture: *mut glib::GBytes, error: *mut *mut glib::GError, ) -> *mut GlyNewFrame; pub fn gly_creator_add_metadata_key_value( creator: *mut GlyCreator, key: *const c_char, value: *const c_char, ) -> gboolean; pub fn gly_creator_create( image: *mut GlyCreator, error: *mut *mut glib::GError, ) -> *mut GlyEncodedImage; pub fn gly_creator_create_async( creator: *mut GlyCreator, cancellable: *mut gio::GCancellable, callback: gio::GAsyncReadyCallback, user_data: gpointer, ); pub fn gly_creator_create_finish( creator: *mut GlyCreator, result: *mut gio::GAsyncResult, error: *mut *mut glib::GError, ) -> *mut GlyEncodedImage; pub fn gly_creator_set_encoding_compression( creator: *mut GlyCreator, compression: u8, ) -> gboolean; pub fn gly_creator_set_encoding_quality(creator: *mut GlyCreator, quality: u8) -> gboolean; pub fn gly_creator_set_sandbox_selector( creator: *mut GlyCreator, sandbox_selector: GlySandboxSelector, ) -> gboolean; //========================================================================= // GlyEncodedImage //========================================================================= pub fn gly_encoded_image_get_type() -> GType; pub fn gly_encoded_image_get_data(encoded_image: *mut GlyEncodedImage) -> *mut glib::GBytes; //========================================================================= // GlyFrame //========================================================================= pub fn gly_frame_get_type() -> GType; pub fn gly_frame_get_buf_bytes(frame: *mut GlyFrame) -> *mut glib::GBytes; pub fn gly_frame_get_color_cicp(frame: *mut GlyFrame) -> *mut GlyCicp; pub fn gly_frame_get_delay(frame: *mut GlyFrame) -> i64; pub fn gly_frame_get_height(frame: *mut GlyFrame) -> u32; pub fn gly_frame_get_memory_format(frame: *mut GlyFrame) -> GlyMemoryFormat; pub fn gly_frame_get_stride(frame: *mut GlyFrame) -> u32; pub fn gly_frame_get_width(frame: *mut GlyFrame) -> u32; //========================================================================= // GlyFrameRequest //========================================================================= pub fn gly_frame_request_get_type() -> GType; pub fn gly_frame_request_new() -> *mut GlyFrameRequest; pub fn gly_frame_request_set_loop_animation( frame_request: *mut GlyFrameRequest, loop_animation: gboolean, ); pub fn gly_frame_request_set_scale( frame_request: *mut GlyFrameRequest, width: u32, height: u32, ); //========================================================================= // GlyImage //========================================================================= pub fn gly_image_get_type() -> GType; pub fn gly_image_get_height(image: *mut GlyImage) -> u32; pub fn gly_image_get_metadata_key_value( image: *mut GlyImage, key: *const c_char, ) -> *mut c_char; pub fn gly_image_get_metadata_keys(image: *mut GlyImage) -> *mut *mut c_char; pub fn gly_image_get_mime_type(image: *mut GlyImage) -> *const c_char; pub fn gly_image_get_specific_frame( image: *mut GlyImage, frame_request: *mut GlyFrameRequest, error: *mut *mut glib::GError, ) -> *mut GlyFrame; pub fn gly_image_get_specific_frame_async( image: *mut GlyImage, frame_request: *mut GlyFrameRequest, cancellable: *mut gio::GCancellable, callback: gio::GAsyncReadyCallback, user_data: gpointer, ); pub fn gly_image_get_specific_frame_finish( image: *mut GlyImage, result: *mut gio::GAsyncResult, error: *mut *mut glib::GError, ) -> *mut GlyFrame; pub fn gly_image_get_transformation_orientation(image: *mut GlyImage) -> u16; pub fn gly_image_get_width(image: *mut GlyImage) -> u32; pub fn gly_image_next_frame( image: *mut GlyImage, error: *mut *mut glib::GError, ) -> *mut GlyFrame; pub fn gly_image_next_frame_async( image: *mut GlyImage, cancellable: *mut gio::GCancellable, callback: gio::GAsyncReadyCallback, user_data: gpointer, ); pub fn gly_image_next_frame_finish( image: *mut GlyImage, result: *mut gio::GAsyncResult, error: *mut *mut glib::GError, ) -> *mut GlyFrame; //========================================================================= // GlyLoader //========================================================================= pub fn gly_loader_get_type() -> GType; pub fn gly_loader_new(file: *mut gio::GFile) -> *mut GlyLoader; pub fn gly_loader_new_for_bytes(bytes: *mut glib::GBytes) -> *mut GlyLoader; pub fn gly_loader_new_for_stream(stream: *mut gio::GInputStream) -> *mut GlyLoader; pub fn gly_loader_get_mime_types() -> *mut *mut c_char; pub fn gly_loader_get_mime_types_async( cancellable: *mut gio::GCancellable, callback: gio::GAsyncReadyCallback, user_data: gpointer, ); pub fn gly_loader_get_mime_types_finish( result: *mut gio::GAsyncResult, error: *mut *mut glib::GError, ) -> *mut *mut c_char; pub fn gly_loader_load(loader: *mut GlyLoader, error: *mut *mut glib::GError) -> *mut GlyImage; pub fn gly_loader_load_async( loader: *mut GlyLoader, cancellable: *mut gio::GCancellable, callback: gio::GAsyncReadyCallback, user_data: gpointer, ); pub fn gly_loader_load_finish( loader: *mut GlyLoader, result: *mut gio::GAsyncResult, error: *mut *mut glib::GError, ) -> *mut GlyImage; pub fn gly_loader_set_accepted_memory_formats( loader: *mut GlyLoader, memory_format_selection: GlyMemoryFormatSelection, ); pub fn gly_loader_set_apply_transformations( loader: *mut GlyLoader, apply_transformations: gboolean, ); pub fn gly_loader_set_sandbox_selector( loader: *mut GlyLoader, sandbox_selector: GlySandboxSelector, ); //========================================================================= // GlyNewFrame //========================================================================= pub fn gly_new_frame_get_type() -> GType; pub fn gly_new_frame_set_color_icc_profile( new_frame: *mut GlyNewFrame, icc_profile: *mut glib::GBytes, ) -> gboolean; } libglycin-rebind-sys-0.0.1/tests/abi.rs000064400000000000000000000257261046102023000161320ustar 00000000000000// Generated by gir (https://github.com/gtk-rs/gir @ 85fe8474df07) // from (@ 9ebb5d4f5f61+) // from gir-files (@ b87d34dc3455) // DO NOT EDIT #![cfg(unix)] use std::error::Error; use std::ffi::OsString; use std::mem::{align_of, size_of}; use std::path::Path; use std::process::{Command, Stdio}; use std::{env, str}; use libglycin_rebind_sys::*; use tempfile::Builder; static PACKAGES: &[&str] = &["glycin-2"]; #[derive(Clone, Debug)] struct Compiler { pub args: Vec, } impl Compiler { pub fn new() -> Result> { let mut args = get_var("CC", "cc")?; args.push("-Wno-deprecated-declarations".to_owned()); // For _Generic args.push("-std=c11".to_owned()); // For %z support in printf when using MinGW. args.push("-D__USE_MINGW_ANSI_STDIO".to_owned()); args.extend(get_var("CFLAGS", "")?); args.extend(get_var("CPPFLAGS", "")?); args.extend(pkg_config_cflags(PACKAGES)?); Ok(Self { args }) } pub fn compile(&self, src: &Path, out: &Path) -> Result<(), Box> { let mut cmd = self.to_command(); cmd.arg(src); cmd.arg("-o"); cmd.arg(out); let status = cmd.spawn()?.wait()?; if !status.success() { return Err(format!("compilation command {cmd:?} failed, {status}").into()); } Ok(()) } fn to_command(&self) -> Command { let mut cmd = Command::new(&self.args[0]); cmd.args(&self.args[1..]); cmd } } fn get_var(name: &str, default: &str) -> Result, Box> { match env::var(name) { Ok(value) => Ok(shell_words::split(&value)?), Err(env::VarError::NotPresent) => Ok(shell_words::split(default)?), Err(err) => Err(format!("{name} {err}").into()), } } fn pkg_config_cflags(packages: &[&str]) -> Result, Box> { if packages.is_empty() { return Ok(Vec::new()); } let pkg_config = env::var_os("PKG_CONFIG").unwrap_or_else(|| OsString::from("pkg-config")); let mut cmd = Command::new(pkg_config); cmd.arg("--cflags"); cmd.args(packages); cmd.stderr(Stdio::inherit()); let out = cmd.output()?; if !out.status.success() { let (status, stdout) = (out.status, String::from_utf8_lossy(&out.stdout)); return Err(format!("command {cmd:?} failed, {status:?}\nstdout: {stdout}").into()); } let stdout = str::from_utf8(&out.stdout)?; Ok(shell_words::split(stdout.trim())?) } #[derive(Copy, Clone, Debug, Eq, PartialEq)] struct Layout { size: usize, alignment: usize, } #[derive(Copy, Clone, Debug, Default, Eq, PartialEq)] struct Results { /// Number of successfully completed tests. passed: usize, /// Total number of failed tests (including those that failed to compile). failed: usize, } impl Results { fn record_passed(&mut self) { self.passed += 1; } fn record_failed(&mut self) { self.failed += 1; } fn summary(&self) -> String { format!("{} passed; {} failed", self.passed, self.failed) } fn expect_total_success(&self) { if self.failed == 0 { println!("OK: {}", self.summary()); } else { panic!("FAILED: {}", self.summary()); }; } } #[test] fn cross_validate_constants_with_c() { let mut c_constants: Vec<(String, String)> = Vec::new(); for l in get_c_output("constant").unwrap().lines() { let (name, value) = l.split_once(';').expect("Missing ';' separator"); c_constants.push((name.to_owned(), value.to_owned())); } let mut results = Results::default(); for ((rust_name, rust_value), (c_name, c_value)) in RUST_CONSTANTS.iter().zip(c_constants.iter()) { if rust_name != c_name { results.record_failed(); eprintln!("Name mismatch:\nRust: {rust_name:?}\nC: {c_name:?}"); continue; } if rust_value != c_value { results.record_failed(); eprintln!( "Constant value mismatch for {rust_name}\nRust: {rust_value:?}\nC: {c_value:?}", ); continue; } results.record_passed(); } results.expect_total_success(); } #[test] fn cross_validate_layout_with_c() { let mut c_layouts = Vec::new(); for l in get_c_output("layout").unwrap().lines() { let (name, value) = l.split_once(';').expect("Missing first ';' separator"); let (size, alignment) = value.split_once(';').expect("Missing second ';' separator"); let size = size.parse().expect("Failed to parse size"); let alignment = alignment.parse().expect("Failed to parse alignment"); c_layouts.push((name.to_owned(), Layout { size, alignment })); } let mut results = Results::default(); for ((rust_name, rust_layout), (c_name, c_layout)) in RUST_LAYOUTS.iter().zip(c_layouts.iter()) { if rust_name != c_name { results.record_failed(); eprintln!("Name mismatch:\nRust: {rust_name:?}\nC: {c_name:?}"); continue; } if rust_layout != c_layout { results.record_failed(); eprintln!("Layout mismatch for {rust_name}\nRust: {rust_layout:?}\nC: {c_layout:?}",); continue; } results.record_passed(); } results.expect_total_success(); } fn get_c_output(name: &str) -> Result> { let tmpdir = Builder::new().prefix("abi").tempdir()?; let exe = tmpdir.path().join(name); let c_file = Path::new("tests").join(name).with_extension("c"); let cc = Compiler::new().expect("configured compiler"); cc.compile(&c_file, &exe)?; let mut cmd = Command::new(exe); cmd.stderr(Stdio::inherit()); let out = cmd.output()?; if !out.status.success() { let (status, stdout) = (out.status, String::from_utf8_lossy(&out.stdout)); return Err(format!("command {cmd:?} failed, {status:?}\nstdout: {stdout}").into()); } Ok(String::from_utf8(out.stdout)?) } const RUST_LAYOUTS: &[(&str, Layout)] = &[ ( "GlyCicp", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlyCreatorClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlyEncodedImageClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlyFrameClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlyFrameRequestClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlyImageClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlyLoaderClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlyLoaderError", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlyMemoryFormat", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlyMemoryFormatSelection", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlyNewFrameClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GlySandboxSelector", Layout { size: size_of::(), alignment: align_of::(), }, ), ]; const RUST_CONSTANTS: &[(&str, &str)] = &[ ("(gint) GLY_LOADER_ERROR_FAILED", "0"), ("(gint) GLY_LOADER_ERROR_NO_MORE_FRAMES", "2"), ("(gint) GLY_LOADER_ERROR_UNKNOWN_IMAGE_FORMAT", "1"), ("(gint) GLY_MEMORY_A8B8G8R8", "6"), ("(gint) GLY_MEMORY_A8R8G8B8", "4"), ("(gint) GLY_MEMORY_A8R8G8B8_PREMULTIPLIED", "1"), ("(gint) GLY_MEMORY_B8G8R8", "8"), ("(gint) GLY_MEMORY_B8G8R8A8", "3"), ("(gint) GLY_MEMORY_B8G8R8A8_PREMULTIPLIED", "0"), ("(gint) GLY_MEMORY_G16", "22"), ("(gint) GLY_MEMORY_G16A16", "21"), ("(gint) GLY_MEMORY_G16A16_PREMULTIPLIED", "20"), ("(gint) GLY_MEMORY_G8", "19"), ("(gint) GLY_MEMORY_G8A8", "18"), ("(gint) GLY_MEMORY_G8A8_PREMULTIPLIED", "17"), ("(gint) GLY_MEMORY_R16G16B16", "9"), ("(gint) GLY_MEMORY_R16G16B16A16", "11"), ("(gint) GLY_MEMORY_R16G16B16A16_FLOAT", "13"), ("(gint) GLY_MEMORY_R16G16B16A16_PREMULTIPLIED", "10"), ("(gint) GLY_MEMORY_R16G16B16_FLOAT", "12"), ("(gint) GLY_MEMORY_R32G32B32A32_FLOAT", "16"), ("(gint) GLY_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED", "15"), ("(gint) GLY_MEMORY_R32G32B32_FLOAT", "14"), ("(gint) GLY_MEMORY_R8G8B8", "7"), ("(gint) GLY_MEMORY_R8G8B8A8", "5"), ("(gint) GLY_MEMORY_R8G8B8A8_PREMULTIPLIED", "2"), ("(guint) GLY_MEMORY_SELECTION_A8B8G8R8", "64"), ("(guint) GLY_MEMORY_SELECTION_A8R8G8B8", "16"), ("(guint) GLY_MEMORY_SELECTION_A8R8G8B8_PREMULTIPLIED", "2"), ("(guint) GLY_MEMORY_SELECTION_B8G8R8", "256"), ("(guint) GLY_MEMORY_SELECTION_B8G8R8A8", "8"), ("(guint) GLY_MEMORY_SELECTION_B8G8R8A8_PREMULTIPLIED", "1"), ("(guint) GLY_MEMORY_SELECTION_G16", "4194304"), ("(guint) GLY_MEMORY_SELECTION_G16A16", "2097152"), ( "(guint) GLY_MEMORY_SELECTION_G16A16_PREMULTIPLIED", "1048576", ), ("(guint) GLY_MEMORY_SELECTION_G8", "524288"), ("(guint) GLY_MEMORY_SELECTION_G8A8", "262144"), ("(guint) GLY_MEMORY_SELECTION_G8A8_PREMULTIPLIED", "131072"), ("(guint) GLY_MEMORY_SELECTION_R16G16B16", "512"), ("(guint) GLY_MEMORY_SELECTION_R16G16B16A16", "2048"), ("(guint) GLY_MEMORY_SELECTION_R16G16B16A16_FLOAT", "8192"), ( "(guint) GLY_MEMORY_SELECTION_R16G16B16A16_PREMULTIPLIED", "1024", ), ("(guint) GLY_MEMORY_SELECTION_R16G16B16_FLOAT", "4096"), ("(guint) GLY_MEMORY_SELECTION_R32G32B32A32_FLOAT", "65536"), ( "(guint) GLY_MEMORY_SELECTION_R32G32B32A32_FLOAT_PREMULTIPLIED", "32768", ), ("(guint) GLY_MEMORY_SELECTION_R32G32B32_FLOAT", "16384"), ("(guint) GLY_MEMORY_SELECTION_R8G8B8", "128"), ("(guint) GLY_MEMORY_SELECTION_R8G8B8A8", "32"), ("(guint) GLY_MEMORY_SELECTION_R8G8B8A8_PREMULTIPLIED", "4"), ("(gint) GLY_SANDBOX_SELECTOR_AUTO", "0"), ("(gint) GLY_SANDBOX_SELECTOR_BWRAP", "1"), ("(gint) GLY_SANDBOX_SELECTOR_FLATPAK_SPAWN", "2"), ("(gint) GLY_SANDBOX_SELECTOR_NOT_SANDBOXED", "3"), ]; libglycin-rebind-sys-0.0.1/tests/constant.c000064400000000000000000000100641046102023000170130ustar 00000000000000// Generated by gir (https://github.com/gtk-rs/gir @ 85fe8474df07) // from (@ 9ebb5d4f5f61+) // from gir-files (@ b87d34dc3455) // DO NOT EDIT #include "manual.h" #include #define PRINT_CONSTANT(CONSTANT_NAME) \ printf("%s;", #CONSTANT_NAME); \ printf(_Generic((CONSTANT_NAME), \ char *: "%s", \ const char *: "%s", \ char: "%c", \ signed char: "%hhd", \ unsigned char: "%hhu", \ short int: "%hd", \ unsigned short int: "%hu", \ int: "%d", \ unsigned int: "%u", \ long: "%ld", \ unsigned long: "%lu", \ long long: "%lld", \ unsigned long long: "%llu", \ float: "%f", \ double: "%f", \ long double: "%ld"), \ CONSTANT_NAME); \ printf("\n"); int main() { PRINT_CONSTANT((gint) GLY_LOADER_ERROR_FAILED); PRINT_CONSTANT((gint) GLY_LOADER_ERROR_NO_MORE_FRAMES); PRINT_CONSTANT((gint) GLY_LOADER_ERROR_UNKNOWN_IMAGE_FORMAT); PRINT_CONSTANT((gint) GLY_MEMORY_A8B8G8R8); PRINT_CONSTANT((gint) GLY_MEMORY_A8R8G8B8); PRINT_CONSTANT((gint) GLY_MEMORY_A8R8G8B8_PREMULTIPLIED); PRINT_CONSTANT((gint) GLY_MEMORY_B8G8R8); PRINT_CONSTANT((gint) GLY_MEMORY_B8G8R8A8); PRINT_CONSTANT((gint) GLY_MEMORY_B8G8R8A8_PREMULTIPLIED); PRINT_CONSTANT((gint) GLY_MEMORY_G16); PRINT_CONSTANT((gint) GLY_MEMORY_G16A16); PRINT_CONSTANT((gint) GLY_MEMORY_G16A16_PREMULTIPLIED); PRINT_CONSTANT((gint) GLY_MEMORY_G8); PRINT_CONSTANT((gint) GLY_MEMORY_G8A8); PRINT_CONSTANT((gint) GLY_MEMORY_G8A8_PREMULTIPLIED); PRINT_CONSTANT((gint) GLY_MEMORY_R16G16B16); PRINT_CONSTANT((gint) GLY_MEMORY_R16G16B16A16); PRINT_CONSTANT((gint) GLY_MEMORY_R16G16B16A16_FLOAT); PRINT_CONSTANT((gint) GLY_MEMORY_R16G16B16A16_PREMULTIPLIED); PRINT_CONSTANT((gint) GLY_MEMORY_R16G16B16_FLOAT); PRINT_CONSTANT((gint) GLY_MEMORY_R32G32B32A32_FLOAT); PRINT_CONSTANT((gint) GLY_MEMORY_R32G32B32A32_FLOAT_PREMULTIPLIED); PRINT_CONSTANT((gint) GLY_MEMORY_R32G32B32_FLOAT); PRINT_CONSTANT((gint) GLY_MEMORY_R8G8B8); PRINT_CONSTANT((gint) GLY_MEMORY_R8G8B8A8); PRINT_CONSTANT((gint) GLY_MEMORY_R8G8B8A8_PREMULTIPLIED); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_A8B8G8R8); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_A8R8G8B8); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_A8R8G8B8_PREMULTIPLIED); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_B8G8R8); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_B8G8R8A8); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_B8G8R8A8_PREMULTIPLIED); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_G16); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_G16A16); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_G16A16_PREMULTIPLIED); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_G8); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_G8A8); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_G8A8_PREMULTIPLIED); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R16G16B16); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R16G16B16A16); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R16G16B16A16_FLOAT); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R16G16B16A16_PREMULTIPLIED); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R16G16B16_FLOAT); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R32G32B32A32_FLOAT); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R32G32B32A32_FLOAT_PREMULTIPLIED); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R32G32B32_FLOAT); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R8G8B8); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R8G8B8A8); PRINT_CONSTANT((guint) GLY_MEMORY_SELECTION_R8G8B8A8_PREMULTIPLIED); PRINT_CONSTANT((gint) GLY_SANDBOX_SELECTOR_AUTO); PRINT_CONSTANT((gint) GLY_SANDBOX_SELECTOR_BWRAP); PRINT_CONSTANT((gint) GLY_SANDBOX_SELECTOR_FLATPAK_SPAWN); PRINT_CONSTANT((gint) GLY_SANDBOX_SELECTOR_NOT_SANDBOXED); return 0; } libglycin-rebind-sys-0.0.1/tests/layout.c000064400000000000000000000026371046102023000165060ustar 00000000000000// Generated by gir (https://github.com/gtk-rs/gir @ 85fe8474df07) // from (@ 9ebb5d4f5f61+) // from gir-files (@ b87d34dc3455) // DO NOT EDIT #include "manual.h" #include #include int main() { printf("%s;%zu;%zu\n", "GlyCicp", sizeof(GlyCicp), alignof(GlyCicp)); printf("%s;%zu;%zu\n", "GlyCreatorClass", sizeof(GlyCreatorClass), alignof(GlyCreatorClass)); printf("%s;%zu;%zu\n", "GlyEncodedImageClass", sizeof(GlyEncodedImageClass), alignof(GlyEncodedImageClass)); printf("%s;%zu;%zu\n", "GlyFrameClass", sizeof(GlyFrameClass), alignof(GlyFrameClass)); printf("%s;%zu;%zu\n", "GlyFrameRequestClass", sizeof(GlyFrameRequestClass), alignof(GlyFrameRequestClass)); printf("%s;%zu;%zu\n", "GlyImageClass", sizeof(GlyImageClass), alignof(GlyImageClass)); printf("%s;%zu;%zu\n", "GlyLoaderClass", sizeof(GlyLoaderClass), alignof(GlyLoaderClass)); printf("%s;%zu;%zu\n", "GlyLoaderError", sizeof(GlyLoaderError), alignof(GlyLoaderError)); printf("%s;%zu;%zu\n", "GlyMemoryFormat", sizeof(GlyMemoryFormat), alignof(GlyMemoryFormat)); printf("%s;%zu;%zu\n", "GlyMemoryFormatSelection", sizeof(GlyMemoryFormatSelection), alignof(GlyMemoryFormatSelection)); printf("%s;%zu;%zu\n", "GlyNewFrameClass", sizeof(GlyNewFrameClass), alignof(GlyNewFrameClass)); printf("%s;%zu;%zu\n", "GlySandboxSelector", sizeof(GlySandboxSelector), alignof(GlySandboxSelector)); return 0; } libglycin-rebind-sys-0.0.1/tests/manual.h000064400000000000000000000001561046102023000164450ustar 00000000000000// Feel free to edit this file, it won't be regenerated by gir generator unless removed. #include