aws_smithy_cbor/
data.rs

1/*
2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 * SPDX-License-Identifier: Apache-2.0
4 */
5
6#[derive(Clone, Copy, PartialEq, PartialOrd, Eq, Ord, Debug, Hash)]
7pub enum Type {
8    Bool,
9    Null,
10    Undefined,
11    U8,
12    U16,
13    U32,
14    U64,
15    I8,
16    I16,
17    I32,
18    I64,
19    Int,
20    F16,
21    F32,
22    F64,
23    Simple,
24    Bytes,
25    BytesIndef,
26    String,
27    StringIndef,
28    Array,
29    ArrayIndef,
30    Map,
31    MapIndef,
32    Tag,
33    Break,
34    Unknown(u8),
35}
36
37impl Type {
38    pub(crate) fn new(ty: minicbor::data::Type) -> Self {
39        match ty {
40            minicbor::data::Type::Bool => Self::Bool,
41            minicbor::data::Type::Null => Self::Null,
42            minicbor::data::Type::Undefined => Self::Undefined,
43            minicbor::data::Type::U8 => Self::U8,
44            minicbor::data::Type::U16 => Self::U16,
45            minicbor::data::Type::U32 => Self::U32,
46            minicbor::data::Type::U64 => Self::U64,
47            minicbor::data::Type::I8 => Self::I8,
48            minicbor::data::Type::I16 => Self::I16,
49            minicbor::data::Type::I32 => Self::I32,
50            minicbor::data::Type::I64 => Self::I64,
51            minicbor::data::Type::Int => Self::Int,
52            minicbor::data::Type::F16 => Self::F16,
53            minicbor::data::Type::F32 => Self::F32,
54            minicbor::data::Type::F64 => Self::F64,
55            minicbor::data::Type::Simple => Self::Simple,
56            minicbor::data::Type::Bytes => Self::Bytes,
57            minicbor::data::Type::BytesIndef => Self::BytesIndef,
58            minicbor::data::Type::String => Self::String,
59            minicbor::data::Type::StringIndef => Self::StringIndef,
60            minicbor::data::Type::Array => Self::Array,
61            minicbor::data::Type::ArrayIndef => Self::ArrayIndef,
62            minicbor::data::Type::Map => Self::Map,
63            minicbor::data::Type::MapIndef => Self::MapIndef,
64            minicbor::data::Type::Tag => Self::Tag,
65            minicbor::data::Type::Break => Self::Break,
66            minicbor::data::Type::Unknown(byte) => Self::Unknown(byte),
67        }
68    }
69
70    // This is just the reverse mapping of `new`.
71    pub(crate) fn into_minicbor_type(self) -> minicbor::data::Type {
72        match self {
73            Type::Bool => minicbor::data::Type::Bool,
74            Type::Null => minicbor::data::Type::Null,
75            Type::Undefined => minicbor::data::Type::Undefined,
76            Type::U8 => minicbor::data::Type::U8,
77            Type::U16 => minicbor::data::Type::U16,
78            Type::U32 => minicbor::data::Type::U32,
79            Type::U64 => minicbor::data::Type::U64,
80            Type::I8 => minicbor::data::Type::I8,
81            Type::I16 => minicbor::data::Type::I16,
82            Type::I32 => minicbor::data::Type::I32,
83            Type::I64 => minicbor::data::Type::I64,
84            Type::Int => minicbor::data::Type::Int,
85            Type::F16 => minicbor::data::Type::F16,
86            Type::F32 => minicbor::data::Type::F32,
87            Type::F64 => minicbor::data::Type::F64,
88            Type::Simple => minicbor::data::Type::Simple,
89            Type::Bytes => minicbor::data::Type::Bytes,
90            Type::BytesIndef => minicbor::data::Type::BytesIndef,
91            Type::String => minicbor::data::Type::String,
92            Type::StringIndef => minicbor::data::Type::StringIndef,
93            Type::Array => minicbor::data::Type::Array,
94            Type::ArrayIndef => minicbor::data::Type::ArrayIndef,
95            Type::Map => minicbor::data::Type::Map,
96            Type::MapIndef => minicbor::data::Type::MapIndef,
97            Type::Tag => minicbor::data::Type::Tag,
98            Type::Break => minicbor::data::Type::Break,
99            Type::Unknown(byte) => minicbor::data::Type::Unknown(byte),
100        }
101    }
102}