aws_sdk_paymentcryptography/protocol_serde/
shape_key_modes_of_use.rs1pub fn ser_key_modes_of_use(
3 object: &mut ::aws_smithy_json::serialize::JsonObjectWriter,
4 input: &crate::types::KeyModesOfUse,
5) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::SerializationError> {
6 if input.encrypt {
7 object.key("Encrypt").boolean(input.encrypt);
8 }
9 if input.decrypt {
10 object.key("Decrypt").boolean(input.decrypt);
11 }
12 if input.wrap {
13 object.key("Wrap").boolean(input.wrap);
14 }
15 if input.unwrap {
16 object.key("Unwrap").boolean(input.unwrap);
17 }
18 if input.generate {
19 object.key("Generate").boolean(input.generate);
20 }
21 if input.sign {
22 object.key("Sign").boolean(input.sign);
23 }
24 if input.verify {
25 object.key("Verify").boolean(input.verify);
26 }
27 if input.derive_key {
28 object.key("DeriveKey").boolean(input.derive_key);
29 }
30 if input.no_restrictions {
31 object.key("NoRestrictions").boolean(input.no_restrictions);
32 }
33 Ok(())
34}
35
36pub(crate) fn de_key_modes_of_use<'a, I>(
37 tokens: &mut ::std::iter::Peekable<I>,
38) -> ::std::result::Result<Option<crate::types::KeyModesOfUse>, ::aws_smithy_json::deserialize::error::DeserializeError>
39where
40 I: Iterator<Item = Result<::aws_smithy_json::deserialize::Token<'a>, ::aws_smithy_json::deserialize::error::DeserializeError>>,
41{
42 match tokens.next().transpose()? {
43 Some(::aws_smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
44 Some(::aws_smithy_json::deserialize::Token::StartObject { .. }) => {
45 #[allow(unused_mut)]
46 let mut builder = crate::types::builders::KeyModesOfUseBuilder::default();
47 loop {
48 match tokens.next().transpose()? {
49 Some(::aws_smithy_json::deserialize::Token::EndObject { .. }) => break,
50 Some(::aws_smithy_json::deserialize::Token::ObjectKey { key, .. }) => match key.to_unescaped()?.as_ref() {
51 "Encrypt" => {
52 builder = builder.set_encrypt(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
53 }
54 "Decrypt" => {
55 builder = builder.set_decrypt(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
56 }
57 "Wrap" => {
58 builder = builder.set_wrap(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
59 }
60 "Unwrap" => {
61 builder = builder.set_unwrap(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
62 }
63 "Generate" => {
64 builder = builder.set_generate(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
65 }
66 "Sign" => {
67 builder = builder.set_sign(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
68 }
69 "Verify" => {
70 builder = builder.set_verify(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
71 }
72 "DeriveKey" => {
73 builder = builder.set_derive_key(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
74 }
75 "NoRestrictions" => {
76 builder = builder.set_no_restrictions(::aws_smithy_json::deserialize::token::expect_bool_or_null(tokens.next())?);
77 }
78 _ => ::aws_smithy_json::deserialize::token::skip_value(tokens)?,
79 },
80 other => {
81 return Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(format!(
82 "expected object key or end object, found: {:?}",
83 other
84 )))
85 }
86 }
87 }
88 Ok(Some(builder.build()))
89 }
90 _ => Err(::aws_smithy_json::deserialize::error::DeserializeError::custom(
91 "expected start object or null",
92 )),
93 }
94}