diff options
author | Robin Krahl <me@robin-krahl.de> | 2020-09-20 05:01:06 +0200 |
---|---|---|
committer | Robin Krahl <robin.krahl@ireas.org> | 2020-09-20 11:50:05 +0200 |
commit | e9a06bb9a2802a5ae6011fcd96cf54e1cfc7d311 (patch) | |
tree | bac0eab277ac64d6960dd433b7603393bbab2561 /src | |
parent | 483ec7256d6c4d01ba6c41513fdf8bbd7df6b4b3 (diff) | |
download | nitrokey-sys-rs-e9a06bb9a2802a5ae6011fcd96cf54e1cfc7d311.tar.gz nitrokey-sys-rs-e9a06bb9a2802a5ae6011fcd96cf54e1cfc7d311.tar.bz2 |
Derive Default for libnitrokey structs
This patch adds the --with-derive-default option to the bindgen
invocation so that it derives Default implementations for all
libnitrokey structs. This allows us to simplify code in nitrokey-rs,
for example the initialization of structs that are used in nitrokey-sys
functions with output parameters.
Diffstat (limited to 'src')
-rw-r--r-- | src/ffi.rs | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -79,9 +79,14 @@ fn bindgen_test_layout_NK_device_info() { ) ); } +impl Default for NK_device_info { + fn default() -> Self { + unsafe { ::std::mem::zeroed() } + } +} #[doc = " Stores the common device status for all Nitrokey devices."] #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Default, Copy, Clone)] pub struct NK_status { #[doc = " The major firmware version, e. g. 0 in v0.40."] pub firmware_version_major: u8, @@ -196,7 +201,7 @@ fn bindgen_test_layout_NK_status() { } #[doc = " Stores the status of a Storage device."] #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Default, Copy, Clone)] pub struct NK_storage_status { #[doc = " Indicates whether the unencrypted volume is read-only."] pub unencrypted_volume_read_only: bool, @@ -447,7 +452,7 @@ fn bindgen_test_layout_NK_storage_status() { } #[doc = " Data about the usage of the SD card."] #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Default, Copy, Clone)] pub struct NK_SD_usage_data { #[doc = " The minimum write level, as a percentage of the total card"] #[doc = " size."] @@ -494,7 +499,7 @@ fn bindgen_test_layout_NK_SD_usage_data() { ); } #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Default, Copy, Clone)] pub struct NK_storage_ProductionTest { pub FirmwareVersion_au8: [u8; 2usize], pub FirmwareVersionInternal_u8: u8, @@ -1416,7 +1421,7 @@ extern "C" { ) -> ::std::os::raw::c_int; } #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Debug, Default, Copy, Clone)] pub struct ReadSlot_t { pub slot_name: [u8; 15usize], pub _slot_config: u8, |