bitwarden_core/
uniffi_support.rs1use std::num::NonZeroU32;
4
5use bitwarden_crypto::CryptoError;
6use uuid::Uuid;
7
8use crate::key_management::SignedSecurityState;
9
10uniffi::use_remote_type!(bitwarden_crypto::NonZeroU32);
11
12type DateTime = chrono::DateTime<chrono::Utc>;
13uniffi::custom_type!(DateTime, std::time::SystemTime, { remote });
14
15uniffi::custom_type!(Uuid, String, {
16 remote,
17 try_lift: |val| Uuid::parse_str(val.as_str()).map_err(|e| e.into()),
18 lower: |obj| obj.to_string(),
19});
20
21#[allow(dead_code)]
24#[derive(uniffi::Record)]
25struct UniffiConverterDummyRecord {
26 uuid: Uuid,
27 date: DateTime,
28}
29
30uniffi::custom_type!(SignedSecurityState, String, {
31 try_lift: |val| {
32 val.parse().map_err(|e| {
33 CryptoError::EncodingError(e).into()
34 })
35 },
36 lower: |obj| obj.into(),
37});