1use qiniu_utils::{smallstr::SmallString, wrap_smallstr};
2use serde::{
3 de::{Deserialize, Deserializer, Error, Visitor},
4 ser::{Serialize, Serializer},
5};
6use std::{
7 borrow::{Borrow, BorrowMut, Cow},
8 fmt,
9 iter::FromIterator,
10 ops::{Deref, DerefMut, Index, IndexMut, Range, RangeFrom, RangeFull, RangeTo},
11};
12
13#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15pub struct AccessKey {
16 inner: SmallString<[u8; 64]>,
17}
18
19#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
21pub struct SecretKey {
22 inner: SmallString<[u8; 64]>,
23}
24
25wrap_smallstr!(AccessKey);
26wrap_smallstr!(SecretKey);
27
28#[cfg(test)]
29mod tests {
30 use super::*;
31 use serde_json::{from_str as from_json_str, to_string as to_json_string};
32
33 #[test]
34 fn test_serialize() -> anyhow::Result<()> {
35 let access_key = AccessKey::from("access_key");
36 assert_eq!(to_json_string(&access_key)?, "\"access_key\"");
37 Ok(())
38 }
39
40 #[test]
41 fn test_deserialize() -> anyhow::Result<()> {
42 let access_key: AccessKey = from_json_str("\"access_key\"")?;
43 assert_eq!(access_key.as_str(), "access_key");
44 Ok(())
45 }
46}