1pub mod sodiumoxide;
4
5use self::sodiumoxide::{SodiumOxideAsymmetricNonce, SodiumOxideSymmetricNonce};
6use serde::{Deserialize, Serialize};
7
8pub trait HasNonce {
10 fn nonce(&self) -> Nonce;
11}
12
13#[derive(Serialize, Deserialize, Debug, Clone)]
15pub enum Nonce {
16 Symmetric(SymmetricNonce),
17 Asymmetric(AsymmetricNonce),
18}
19
20#[derive(Serialize, Deserialize, Debug, Clone)]
22pub enum SymmetricNonce {
23 SodiumOxide(SodiumOxideSymmetricNonce),
24}
25
26#[derive(Serialize, Deserialize, Debug, Clone)]
28pub enum AsymmetricNonce {
29 SodiumOxide(SodiumOxideAsymmetricNonce),
30}