Skip to content

Instantly share code, notes, and snippets.

@Cogitri
Created May 4, 2020 13:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Cogitri/78b63494674802796de2a45d52401640 to your computer and use it in GitHub Desktop.
Save Cogitri/78b63494674802796de2a45d52401640 to your computer and use it in GitHub Desktop.
C struct (192 Bytes) vs Rust struct (200 Bytes)
struct apk_package {
apk_hash_node hash_node;
union {
struct apk_solver_package_state ss;
struct {
unsigned int foreach_genid;
union {
int state_int;
void *state_ptr;
};
};
};
struct apk_name *name;
struct apk_installed_package *ipkg;
apk_blob_t *version, *arch, *license;
apk_blob_t *origin, *maintainer;
char *url, *description, *commit;
char *filename;
struct apk_dependency_array *depends, *install_if, *provides;
size_t installed_size, size;
time_t build_time;
unsigned short provider_priority;
unsigned repos : APK_MAX_REPOS;
unsigned marked : 1;
unsigned uninstallable : 1;
unsigned cached_non_repository : 1;
struct apk_checksum csum;
};
# [repr(C)]
#[derive(Copy,Clone)]
pub struct apk_package {
pub hash_node : apk_hash_node ,
pub __bindgen_anon_1 : apk_package__bindgen_ty_1 ,
pub name : * mut apk_name ,
pub ipkg : * mut apk_installed_package ,
pub version : * mut apk_blob_t ,
pub arch : * mut apk_blob_t ,
pub license : * mut apk_blob_t ,
pub origin : * mut apk_blob_t ,
pub maintainer : * mut apk_blob_t ,
pub url : * mut :: std :: os :: raw :: c_char ,
pub description : * mut :: std :: os :: raw :: c_char ,
pub commit : * mut :: std :: os :: raw :: c_char ,
pub filename : * mut :: std :: os :: raw :: c_char ,
pub depends : * mut apk_dependency_array ,
pub install_if : * mut apk_dependency_array ,
pub provides : * mut apk_dependency_array ,
pub installed_size : size_t , pub size : size_t ,
pub build_time : time_t ,
pub provider_priority : :: std :: os :: raw :: c_ushort ,
pub _bitfield_1 : __BindgenBitfieldUnit < [ u8 ; 8usize ] , u32 > ,
pub csum : apk_checksum ,
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment