1#![deny(missing_docs)]
2#![forbid(unsafe_code)]
3#![cfg_attr(all(doc, CHANNEL_NIGHTLY), feature(doc_auto_cfg))]
4use async_trait::async_trait;
9use sos_core::crypto::AccessKey;
10use sos_vault::Vault;
11
12#[cfg(feature = "authenticator")]
13mod authenticator;
14mod error;
15
16#[cfg(feature = "authenticator")]
17pub use authenticator::*;
18pub use error::Error;
19
20pub(crate) type Result<T> = std::result::Result<T, Error>;
22
23#[async_trait]
26pub trait Convert {
27 type Input;
29
30 async fn convert(
32 &self,
33 source: Self::Input,
34 vault: Vault,
35 key: &AccessKey,
36 ) -> crate::Result<Vault>;
37}
38
39#[cfg(feature = "export")]
40pub mod export;
41#[cfg(feature = "import")]
42pub mod import;