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