qiniu_credential/
key.rs

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/// 七牛 Access Key
14#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
15pub struct AccessKey {
16    inner: SmallString<[u8; 64]>,
17}
18
19/// 七牛 Secret Key
20#[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}