rust_cryptoauthlib/hw_impl/
rust2c.rs1use std::convert::{From, TryFrom};
2
3impl TryFrom<super::AtcaIfaceCfg> for cryptoauthlib_sys::ATCAIfaceCfg {
4 type Error = ();
5
6 fn try_from(rust_iface_cfg: super::AtcaIfaceCfg) -> Result<Self, Self::Error> {
7 let atca_iface: cryptoauthlib_sys::ATCAIfaceCfg__bindgen_ty_1 = match rust_iface_cfg
8 .iface_type
9 {
10 super::AtcaIfaceType::AtcaI2cIface => cryptoauthlib_sys::ATCAIfaceCfg__bindgen_ty_1 {
11 atcai2c: match rust_iface_cfg.iface {
12 Some(x) => cryptoauthlib_sys::ATCAIfaceCfg__bindgen_ty_1__bindgen_ty_1 {
13 slave_address: unsafe { x.atcai2c.slave_address },
14 bus: unsafe { x.atcai2c.bus },
15 baud: unsafe { x.atcai2c.baud },
16 },
17 None => return Err(()),
18 },
19 },
20 _ => return Err(()),
21 }; Ok(cryptoauthlib_sys::ATCAIfaceCfg {
23 iface_type: cryptoauthlib_sys::ATCAIfaceType::from(rust_iface_cfg.iface_type),
24 devtype: cryptoauthlib_sys::ATCADeviceType::from(rust_iface_cfg.devtype),
25 __bindgen_anon_1: atca_iface,
26 wake_delay: rust_iface_cfg.wake_delay,
27 rx_retries: rust_iface_cfg.rx_retries,
28 cfg_data: std::ptr::null_mut(),
29 }) } }
32
33impl From<super::AtcaIfaceType> for cryptoauthlib_sys::ATCAIfaceType {
34 fn from(rust_iface_type: super::AtcaIfaceType) -> Self {
35 match rust_iface_type {
36 super::AtcaIfaceType::AtcaI2cIface => cryptoauthlib_sys::ATCAIfaceType_ATCA_I2C_IFACE,
37 super::AtcaIfaceType::AtcaSwiIface => cryptoauthlib_sys::ATCAIfaceType_ATCA_SWI_IFACE,
38 super::AtcaIfaceType::AtcaUartIface => cryptoauthlib_sys::ATCAIfaceType_ATCA_UART_IFACE,
39 super::AtcaIfaceType::AtcaSpiIface => cryptoauthlib_sys::ATCAIfaceType_ATCA_SPI_IFACE,
40 super::AtcaIfaceType::AtcaHidIface => cryptoauthlib_sys::ATCAIfaceType_ATCA_HID_IFACE,
41 super::AtcaIfaceType::AtcaCustomIface => {
42 cryptoauthlib_sys::ATCAIfaceType_ATCA_CUSTOM_IFACE
43 }
44 _ => cryptoauthlib_sys::ATCAIfaceType_ATCA_UNKNOWN_IFACE,
45 }
46 }
47}
48
49impl From<super::AtcaDeviceType> for cryptoauthlib_sys::ATCADeviceType {
50 fn from(rust_iface_devtype: super::AtcaDeviceType) -> Self {
51 match rust_iface_devtype {
52 super::AtcaDeviceType::ATSHA204A => cryptoauthlib_sys::ATCADeviceType_ATSHA204A,
53 super::AtcaDeviceType::ATECC108A => cryptoauthlib_sys::ATCADeviceType_ATECC108A,
54 super::AtcaDeviceType::ATECC508A => cryptoauthlib_sys::ATCADeviceType_ATECC508A,
55 super::AtcaDeviceType::ATECC608A => cryptoauthlib_sys::ATCADeviceType_ATECC608A,
56 super::AtcaDeviceType::ATSHA206A => cryptoauthlib_sys::ATCADeviceType_ATSHA206A,
57 _ => cryptoauthlib_sys::ATCADeviceType_ATCA_DEV_UNKNOWN,
58 }
59 }
60}