From 9506c2cd4a05fccf6f97fd4fdb9fab5ac569a8d9 Mon Sep 17 00:00:00 2001 From: sosthene-nitrokey Date: Wed, 2 Oct 2024 10:04:32 +0000 Subject: [PATCH] deploy: 336941c342f83259f987696649b20edf665683bd --- cbor_smol/de/index.html | 2 +- cbor_smol/de/struct.Deserializer.html | 60 ++-- cbor_smol/error/enum.Error.html | 12 +- cbor_smol/error/index.html | 2 +- search-index.js | 2 +- search.desc/cbor_smol/cbor_smol-desc-0-.js | 2 +- src/cbor_smol/consts.rs.html | 2 + src/cbor_smol/de.rs.html | 380 ++++++++++++++++++++- src/cbor_smol/error.rs.html | 6 + 9 files changed, 426 insertions(+), 42 deletions(-) diff --git a/cbor_smol/de/index.html b/cbor_smol/de/index.html index 2b48223..4604c31 100644 --- a/cbor_smol/de/index.html +++ b/cbor_smol/de/index.html @@ -1,3 +1,3 @@ -cbor_smol::de - Rust

Module cbor_smol::de

source ·

Structs§

  • A structure for deserializing a cbor-smol message.

Functions§

source§

fn deserialize_enum<V>( self, _name: &'static str, _variants: &'static [&'static str], visitor: V, ) -> Result<V::Value>
where V: Visitor<'de>,

Hint that the Deserialize type is expecting an enum value with a -particular name and possible variants.
source§

fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value>
where +particular name and possible variants.

source§

fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value>
where V: Visitor<'de>,

Hint that the Deserialize type is expecting the name of a struct -field or the discriminant of an enum variant.
source§

fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value>
where +field or the discriminant of an enum variant.

source§

fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value>
where V: Visitor<'de>,

Hint that the Deserialize type needs to deserialize a value whose type doesn’t matter because it is ignored. Read more
source§

fn deserialize_i128<V>( self, diff --git a/cbor_smol/error/enum.Error.html b/cbor_smol/error/enum.Error.html index 32fa464..57fd3d0 100644 --- a/cbor_smol/error/enum.Error.html +++ b/cbor_smol/error/enum.Error.html @@ -1,5 +1,5 @@ -Error in cbor_smol::error - Rust

Enum cbor_smol::error::Error

source ·
#[repr(u8)]
pub enum Error { -
Show 21 variants WontImplement, +Error in cbor_smol::error - Rust

Enum cbor_smol::error::Error

source ·
#[repr(u8)]
pub enum Error { +
Show 22 variants WontImplement, NotYetImplemented, SerializeBufferFull(usize), DeserializeUnexpectedEnd, @@ -10,6 +10,7 @@ DeserializeBadI8, DeserializeBadI16, DeserializeBadI32, + DeserializeBadI64, DeserializeBadU8, DeserializeBadU16, DeserializeBadU32, @@ -32,6 +33,7 @@
§

DeserializeBadI8

Expected a i8, was too large

§

DeserializeBadI16

Expected a i16, was too large

§

DeserializeBadI32

Expected a i32, was too large

+
§

DeserializeBadI64

Expected a i64, was too large

§

DeserializeBadU8

Expected a u8

§

DeserializeBadU16

Expected a u16

§

DeserializeBadU32

Expected a u32

@@ -42,8 +44,8 @@
§

SerdeSerCustom

Serde Serialization Error

§

SerdeDeCustom

Serde Deserialization Error

§

SerdeMissingField

Serde Missing required value

-

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn custom<T>(msg: T) -> Self
where - T: Display,

Raised when there is general error when deserializing a type. Read more
source§

fn missing_field(field: &'static str) -> Self

Raised when a Deserialize struct type expected to receive a required +

Trait Implementations§

source§

impl Clone for Error

source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Error

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for Error

source§

fn custom<T>(msg: T) -> Self
where + T: Display,

Raised when there is general error when deserializing a type. Read more
source§

fn missing_field(field: &'static str) -> Self

Raised when a Deserialize struct type expected to receive a required field with a particular name but that field was not present in the input.
source§

fn invalid_type(unexp: Unexpected<'_>, exp: &dyn Expected) -> Self

Raised when a Deserialize receives a type different from what it was expecting. Read more
source§

fn invalid_value(unexp: Unexpected<'_>, exp: &dyn Expected) -> Self

Raised when a Deserialize receives a value of the right type but that @@ -51,7 +53,7 @@ is wrong for some other reason. Read more
source§

fn unknown_variant(variant: &str, expected: &'static [&'static str]) -> Self

Raised when a Deserialize enum type received a variant with an unrecognized name.
source§

fn unknown_field(field: &str, expected: &'static [&'static str]) -> Self

Raised when a Deserialize struct type received a field with an unrecognized name.
source§

fn duplicate_field(field: &'static str) -> Self

Raised when a Deserialize struct type received more than one of the -same field.
source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl Error for Error

source§

fn custom<T>(_msg: T) -> Self
where +same field.

source§

impl Error for Error

1.30.0 · source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more
source§

impl Error for Error

source§

fn custom<T>(_msg: T) -> Self
where T: Display,

Used when a Serialize implementation encounters any error while serializing a type. Read more
source§

impl PartialEq for Error

source§

fn eq(&self, other: &Error) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/cbor_smol/error/index.html b/cbor_smol/error/index.html index e5c9de9..2930cee 100644 --- a/cbor_smol/error/index.html +++ b/cbor_smol/error/index.html @@ -1 +1 @@ -cbor_smol::error - Rust

Module cbor_smol::error

source ·

Enums§

  • This is the error type used by cbor-smol

Type Aliases§

  • This is the Result type used by cbor-smol.
\ No newline at end of file +cbor_smol::error - Rust

Module cbor_smol::error

source ·

Enums§

  • This is the error type used by cbor-smol

Type Aliases§

  • This is the Result type used by cbor-smol.
\ No newline at end of file diff --git a/search-index.js b/search-index.js index d2c9f08..bdb4205 100644 --- a/search-index.js +++ b/search-index.js @@ -1,5 +1,5 @@ var searchIndex = new Map(JSON.parse('[\ -["cbor_smol",{"t":"FEENNNNNNHHHHNNCNNNNNCNNNNNNNNNNNNNNNNNNNCNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNHNNNPPPPPPPPPPPPPPPGPPPIPPPPPNNNNNNNNNNNNNNNNRFFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNO","n":["Bytes","Error","Result","as_mut","as_mut_slice","as_ref","as_slice","borrow","borrow_mut","cbor_deserialize","cbor_serialize","cbor_serialize_bytes","cbor_serialize_extending_bytes","clone","clone_to_uninit","de","default","deref","deref_mut","deserialize","eq","error","fmt","from","from","from","from_slice","hash","insert","insert_slice_at","into","into_inner","into_iter","into_iter","into_iter","into_vec","new","partial_cmp","remove","resize_default","resize_to_capacity","ser","serialize","to_bytes","try_convert_into","try_from","try_from","try_into","type_id","write_all","Deserializer","borrow","borrow_mut","deserialize_any","deserialize_bool","deserialize_byte_buf","deserialize_bytes","deserialize_char","deserialize_enum","deserialize_f32","deserialize_f64","deserialize_i16","deserialize_i32","deserialize_i64","deserialize_i8","deserialize_identifier","deserialize_ignored_any","deserialize_map","deserialize_newtype_struct","deserialize_option","deserialize_seq","deserialize_str","deserialize_string","deserialize_struct","deserialize_tuple","deserialize_tuple_struct","deserialize_u16","deserialize_u32","deserialize_u64","deserialize_u8","deserialize_unit","deserialize_unit_struct","from","from_bytes","from_bytes","into","take_from_bytes","try_from","try_into","type_id","DeserializeBadBool","DeserializeBadEnum","DeserializeBadI16","DeserializeBadI32","DeserializeBadI8","DeserializeBadMajor","DeserializeBadU16","DeserializeBadU32","DeserializeBadU64","DeserializeBadU8","DeserializeBadUtf8","DeserializeExpectedNull","DeserializeNonMinimal","DeserializeUnexpectedEnd","Err","Error","InexistentSliceToArrayError","NotYetImplemented","Ok","Result","SerdeDeCustom","SerdeMissingField","SerdeSerCustom","SerializeBufferFull","WontImplement","borrow","borrow_mut","clone","clone_to_uninit","clone_to_uninit","custom","custom","eq","fmt","fmt","from","into","missing_field","try_from","try_into","type_id","Error","Serializer","SliceWriter","Writer","borrow","borrow","borrow_mut","borrow_mut","bytes_written","collect_str","end","end","end","end","end","fmt","from","from","into","into","into_inner","into_inner","is_human_readable","new","new","serialize_bool","serialize_bytes","serialize_char","serialize_element","serialize_f32","serialize_f64","serialize_field","serialize_field","serialize_field","serialize_field","serialize_i16","serialize_i32","serialize_i64","serialize_i8","serialize_map","serialize_newtype_struct","serialize_newtype_variant","serialize_none","serialize_seq","serialize_some","serialize_str","serialize_struct","serialize_struct_variant","serialize_tuple","serialize_tuple_struct","serialize_tuple_variant","serialize_u16","serialize_u32","serialize_u64","serialize_u8","serialize_unit","serialize_unit_struct","serialize_unit_variant","try_from","try_from","try_into","try_into","type_id","type_id","write_all","write_all","writer"],"q":[[0,"cbor_smol"],[50,"cbor_smol::de"],[90,"cbor_smol::error"],[131,"cbor_smol::ser"],[198,"heapless_bytes"],[199,"serde::de"],[200,"core::marker"],[201,"serde::ser"],[202,"core::result"],[203,"core::convert"],[204,"core::fmt"],[205,"heapless::vec"],[206,"core::hash"],[207,"core::cmp"],[208,"core::option"],[209,"core::ops::function"],[210,"core::any"]],"i":[0,0,0,2,2,2,2,2,2,0,0,0,0,2,2,0,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,27,27,0,27,27,27,31,31,31,31,31,31,31,31,31,31,31,31,31,31,6,0,31,31,6,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,36,0,0,0,35,34,35,34,34,35,35,35,35,35,35,34,35,34,35,34,35,34,35,35,34,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,34,35,34,35,34,36,34,35],"f":"```{{{f{bd}}}{{f{b{j{h}}}}}}0{{{f{d}}}{{f{{j{h}}}}}}0{{{f{c}}}{{f{e}}}{}{}}{{{f{bc}}}{{f{be}}}{}{}}{{{f{{j{h}}}}}{{l{c}}}n}{{{f{c}}{f{b{j{h}}}}}{{l{{f{{j{h}}}}}}}{A`Ab}}{{{f{c}}}{{l{d}}}{A`Ab}}{{{f{c}}{f{bd}}}{{l{Ad}}}{A`Ab}}{{{f{d}}}d}{{{f{c}}}Af{}}`{{}d}{{{f{d}}}f}{{{f{bd}}}{{f{b}}}}{c{{Ah{d}}}Aj}{{{f{d}}{f{c}}}Al{{An{{j{h}}}}A`}}`{{{f{d}}{f{bB`}}}{{Ah{AfBb}}}}{{{Bd{h}}}d}{cd{{Bf{{Bd{h}}}}}}{cc{}}{{{f{{j{h}}}}}{{Ah{dAf}}}}{{{f{d}}{f{bc}}}AfBh}{{{f{bd}}Adh}{{Ah{Afh}}}}{{{f{bd}}{f{{j{h}}}}Ad}{{Ah{AfAf}}}}{ce{}{}}{d{{Bd{h}}}}{d}{{{f{bd}}}}{{{f{d}}}}3{{}d}{{{f{d}}{f{c}}}{{Bl{Bj}}}{{An{{j{h}}}}A`}}{{{f{bd}}Ad}{{Ah{hAf}}}}{{{f{bd}}Ad}{{Ah{AfAf}}}}{{{f{bd}}}Af}`{{{f{d}}c}AhBn}{{{f{d}}}{{Ah{dAf}}}}0{c{{Ah{e}}}{}{}}{e{{Ah{dc}}}{}{{Cb{{f{b{j{h}}}}}{{C`{{Ah{Adc}}}}}}}}1{{{f{c}}}Cd{}}{{{f{b{f{bd}}}}{f{{j{h}}}}}{{l{Af}}}}`{{{f{c}}}{{f{e}}}{}{}}{{{f{bc}}}{{f{be}}}{}{}}{{{f{bCf}}c}lCh}0000{{{f{bCf}}{f{Cj}}{f{{j{{f{Cj}}}}}}c}lCh}111111111{{{f{bCf}}{f{Cj}}c}lCh}22221{{{f{bCf}}Adc}lCh}{{{f{bCf}}{f{Cj}}Adc}lCh}444442{cc{}}{{{f{{j{h}}}}}{{l{c}}}n}{{{f{{j{h}}}}}Cf}{ce{}{}}{{{f{{j{h}}}}}{{l{{Cl{c{f{{j{h}}}}}}}}}n}??=`````````````````````````;:{{{f{Cn}}}Cn}{{{f{c}}}Af{}}0{cCnD`}0{{{f{Cn}}{f{Cn}}}Al}{{{f{Cn}}{f{bB`}}}Db}096{{{f{Cj}}}Cn}{c{{Ah{e}}}{}{}}0{{{f{c}}}Cd{}}````{{{f{c}}}{{f{e}}}{}{}}0{{{f{bc}}}{{f{be}}}{}{}}0{{{f{Dd}}}Ad}{{{f{b{Df{c}}}}{f{e}}}{{l{g}}}Dh{D`A`}{}}{{{f{b{Df{c}}}}}{{l{Af}}}Dh}0000{{{f{Dd}}{f{bB`}}}Db}{cc{}}0{ce{}{}}0{{{Df{c}}}cDh}{Dd{{f{b{j{h}}}}}}{{{f{{f{b{Df{c}}}}}}}AlDh}{c{{Df{c}}}Dh}{{{f{b{j{h}}}}}Dd}{{{f{b{Df{c}}}}Al}{{l{Af}}}Dh}{{{f{b{Df{c}}}}{f{{j{h}}}}}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Dj}{{l{Af}}}Dh}{{{f{b{f{b{Df{c}}}}}}{f{e}}}{{l{Af}}}Dh{A`Ab}}{{{f{b{Df{c}}}}Dl}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Dn}{{l{Af}}}Dh}22{{{f{b{f{b{Df{c}}}}}}{f{Cj}}{f{e}}}{{l{Af}}}Dh{A`Ab}}0{{{f{b{Df{c}}}}E`}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Eb}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Ed}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Ef}{{l{Af}}}Dh}{{{f{b{Df{c}}}}{Bl{Ad}}}{{l{{`{c}}}}}Dh}{{{f{b{Df{c}}}}{f{Cj}}{f{e}}}{{l{Af}}}Dh{A`Ab}}{{{f{b{Df{c}}}}{f{Cj}}Eh{f{Cj}}{f{e}}}{{l{Af}}}Dh{A`Ab}}{{{f{b{Df{c}}}}}{{l{Af}}}Dh}3{{{f{b{Df{c}}}}{f{e}}}{{l{Af}}}Dh{A`Ab}}{{{f{b{Df{c}}}}{f{Cj}}}{{l{Af}}}Dh}{{{f{b{Df{c}}}}{f{Cj}}Ad}{{l{e}}}Dh{}}{{{f{b{Df{c}}}}{f{Cj}}Eh{f{Cj}}Ad}{{l{e}}}Dh{}}{{{f{b{Df{c}}}}Ad}{{l{{f{b{Df{c}}}}}}}Dh}{{{f{b{Df{c}}}}{f{Cj}}Ad}{{l{{f{b{Df{c}}}}}}}Dh}{{{f{b{Df{c}}}}{f{Cj}}Eh{f{Cj}}Ad}{{l{{f{b{Df{c}}}}}}}Dh}{{{f{b{Df{c}}}}Ej}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Eh}{{l{Af}}}Dh}{{{f{b{Df{c}}}}El}{{l{Af}}}Dh}{{{f{b{Df{c}}}}h}{{l{Af}}}Dh};9{{{f{b{Df{c}}}}{f{Cj}}Eh{f{Cj}}}{{l{Af}}}Dh}{c{{Ah{e}}}{}{}}000{{{f{c}}}Cd{}}0{{{f{b{Dh{}{{En{c}}}}}}{f{{j{h}}}}}{{Ah{Afc}}}{{Bf{Cn}}}}{{{f{bDd}}{f{{j{h}}}}}{{l{Af}}}}`","D":"G`","p":[[0,"mut"],[5,"Bytes",0,198],[1,"reference"],[1,"u8"],[1,"slice"],[8,"Result",90],[10,"Deserialize",199],[10,"Sized",200],[10,"Serialize",201],[1,"usize"],[1,"unit"],[6,"Result",202],[10,"Deserializer",199],[1,"bool"],[10,"AsRef",203],[5,"Formatter",204],[5,"Error",204],[5,"Vec",205],[10,"Into",203],[10,"Hasher",206],[6,"Ordering",207],[6,"Option",208],[10,"Serializer",201],[17,"Output"],[10,"FnOnce",209],[5,"TypeId",210],[5,"Deserializer",50],[10,"Visitor",199],[1,"str"],[1,"tuple"],[6,"Error",90],[10,"Display",204],[8,"Result",204],[5,"SliceWriter",131],[5,"Serializer",131],[10,"Writer",131],[1,"char"],[1,"f32"],[1,"f64"],[1,"i16"],[1,"i32"],[1,"i64"],[1,"i8"],[1,"u32"],[1,"u16"],[1,"u64"],[17,"Error"]],"r":[[0,198],[1,90],[2,90]],"b":[[23,"impl-From%3CVec%3Cu8,+N%3E%3E-for-Bytes%3CN%3E"],[24,"impl-Bytes%3CN%3E"],[32,"impl-IntoIterator-for-Bytes%3CN%3E"],[33,"impl-IntoIterator-for-%26mut+Bytes%3CN%3E"],[34,"impl-IntoIterator-for-%26Bytes%3CN%3E"],[120,"impl-Error-for-Error"],[121,"impl-Error-for-Error"],[123,"impl-Display-for-Error"],[124,"impl-Debug-for-Error"],[141,"impl-SerializeTuple-for-%26mut+Serializer%3CW%3E"],[142,"impl-SerializeTupleStruct-for-%26mut+Serializer%3CW%3E"],[143,"impl-SerializeStruct-for-%26mut+Serializer%3CW%3E"],[144,"impl-SerializeTupleVariant-for-%26mut+Serializer%3CW%3E"],[145,"impl-SerializeStructVariant-for-%26mut+Serializer%3CW%3E"],[162,"impl-SerializeTupleStruct-for-%26mut+Serializer%3CW%3E"],[163,"impl-SerializeTupleVariant-for-%26mut+Serializer%3CW%3E"],[164,"impl-SerializeStruct-for-%26mut+Serializer%3CW%3E"],[165,"impl-SerializeStructVariant-for-%26mut+Serializer%3CW%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAI4AEgAAAAQABgAAAAgAAwAOAAoAGwADACEAAgAmAAUALgAAADAAAgA0AB4AWAACAHQACQCAAAMAhQAGAI0ABgCaAAEAnQAmAMUAAQA="}]\ +["cbor_smol",{"t":"FEENNNNNNHHHHNNCNNNNNCNNNNNNNNNNNNNNNNNNNCNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNHNNNPPPPPPPPPPPPPPPPGPPPIPPPPPNNNNNNNNNNNNNNNNRFFKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNO","n":["Bytes","Error","Result","as_mut","as_mut_slice","as_ref","as_slice","borrow","borrow_mut","cbor_deserialize","cbor_serialize","cbor_serialize_bytes","cbor_serialize_extending_bytes","clone","clone_to_uninit","de","default","deref","deref_mut","deserialize","eq","error","fmt","from","from","from","from_slice","hash","insert","insert_slice_at","into","into_inner","into_iter","into_iter","into_iter","into_vec","new","partial_cmp","remove","resize_default","resize_to_capacity","ser","serialize","to_bytes","try_convert_into","try_from","try_from","try_into","type_id","write_all","Deserializer","borrow","borrow_mut","deserialize_any","deserialize_bool","deserialize_byte_buf","deserialize_bytes","deserialize_char","deserialize_enum","deserialize_f32","deserialize_f64","deserialize_i16","deserialize_i32","deserialize_i64","deserialize_i8","deserialize_identifier","deserialize_ignored_any","deserialize_map","deserialize_newtype_struct","deserialize_option","deserialize_seq","deserialize_str","deserialize_string","deserialize_struct","deserialize_tuple","deserialize_tuple_struct","deserialize_u16","deserialize_u32","deserialize_u64","deserialize_u8","deserialize_unit","deserialize_unit_struct","from","from_bytes","from_bytes","into","take_from_bytes","try_from","try_into","type_id","DeserializeBadBool","DeserializeBadEnum","DeserializeBadI16","DeserializeBadI32","DeserializeBadI64","DeserializeBadI8","DeserializeBadMajor","DeserializeBadU16","DeserializeBadU32","DeserializeBadU64","DeserializeBadU8","DeserializeBadUtf8","DeserializeExpectedNull","DeserializeNonMinimal","DeserializeUnexpectedEnd","Err","Error","InexistentSliceToArrayError","NotYetImplemented","Ok","Result","SerdeDeCustom","SerdeMissingField","SerdeSerCustom","SerializeBufferFull","WontImplement","borrow","borrow_mut","clone","clone_to_uninit","clone_to_uninit","custom","custom","eq","fmt","fmt","from","into","missing_field","try_from","try_into","type_id","Error","Serializer","SliceWriter","Writer","borrow","borrow","borrow_mut","borrow_mut","bytes_written","collect_str","end","end","end","end","end","fmt","from","from","into","into","into_inner","into_inner","is_human_readable","new","new","serialize_bool","serialize_bytes","serialize_char","serialize_element","serialize_f32","serialize_f64","serialize_field","serialize_field","serialize_field","serialize_field","serialize_i16","serialize_i32","serialize_i64","serialize_i8","serialize_map","serialize_newtype_struct","serialize_newtype_variant","serialize_none","serialize_seq","serialize_some","serialize_str","serialize_struct","serialize_struct_variant","serialize_tuple","serialize_tuple_struct","serialize_tuple_variant","serialize_u16","serialize_u32","serialize_u64","serialize_u8","serialize_unit","serialize_unit_struct","serialize_unit_variant","try_from","try_from","try_into","try_into","type_id","type_id","write_all","write_all","writer"],"q":[[0,"cbor_smol"],[50,"cbor_smol::de"],[90,"cbor_smol::error"],[132,"cbor_smol::ser"],[199,"heapless_bytes"],[200,"serde::de"],[201,"core::marker"],[202,"serde::ser"],[203,"core::result"],[204,"core::convert"],[205,"core::fmt"],[206,"heapless::vec"],[207,"core::hash"],[208,"core::cmp"],[209,"core::option"],[210,"core::ops::function"],[211,"core::any"]],"i":[0,0,0,2,2,2,2,2,2,0,0,0,0,2,2,0,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,27,27,0,27,27,27,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,6,0,31,31,6,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,36,0,0,0,35,34,35,34,34,35,35,35,35,35,35,34,35,34,35,34,35,34,35,35,34,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,34,35,34,35,34,36,34,35],"f":"```{{{f{bd}}}{{f{b{j{h}}}}}}0{{{f{d}}}{{f{{j{h}}}}}}0{{{f{c}}}{{f{e}}}{}{}}{{{f{bc}}}{{f{be}}}{}{}}{{{f{{j{h}}}}}{{l{c}}}n}{{{f{c}}{f{b{j{h}}}}}{{l{{f{{j{h}}}}}}}{A`Ab}}{{{f{c}}}{{l{d}}}{A`Ab}}{{{f{c}}{f{bd}}}{{l{Ad}}}{A`Ab}}{{{f{d}}}d}{{{f{c}}}Af{}}`{{}d}{{{f{d}}}f}{{{f{bd}}}{{f{b}}}}{c{{Ah{d}}}Aj}{{{f{d}}{f{c}}}Al{{An{{j{h}}}}A`}}`{{{f{d}}{f{bB`}}}{{Ah{AfBb}}}}{cc{}}{{{Bd{h}}}d}{cd{{Bf{{Bd{h}}}}}}{{{f{{j{h}}}}}{{Ah{dAf}}}}{{{f{d}}{f{bc}}}AfBh}{{{f{bd}}Adh}{{Ah{Afh}}}}{{{f{bd}}{f{{j{h}}}}Ad}{{Ah{AfAf}}}}{ce{}{}}{d{{Bd{h}}}}{{{f{bd}}}}{{{f{d}}}}{d}3{{}d}{{{f{d}}{f{c}}}{{Bl{Bj}}}{{An{{j{h}}}}A`}}{{{f{bd}}Ad}{{Ah{hAf}}}}{{{f{bd}}Ad}{{Ah{AfAf}}}}{{{f{bd}}}Af}`{{{f{d}}c}AhBn}{{{f{d}}}{{Ah{dAf}}}}0{c{{Ah{e}}}{}{}}{e{{Ah{dc}}}{}{{Cb{{f{b{j{h}}}}}{{C`{{Ah{Adc}}}}}}}}1{{{f{c}}}Cd{}}{{{f{b{f{bd}}}}{f{{j{h}}}}}{{l{Af}}}}`{{{f{c}}}{{f{e}}}{}{}}{{{f{bc}}}{{f{be}}}{}{}}{{{f{bCf}}c}lCh}0000{{{f{bCf}}{f{Cj}}{f{{j{{f{Cj}}}}}}c}lCh}111111111{{{f{bCf}}{f{Cj}}c}lCh}22221{{{f{bCf}}Adc}lCh}{{{f{bCf}}{f{Cj}}Adc}lCh}444442{cc{}}{{{f{{j{h}}}}}{{l{c}}}n}{{{f{{j{h}}}}}Cf}{ce{}{}}{{{f{{j{h}}}}}{{l{{Cl{c{f{{j{h}}}}}}}}}n}??=``````````````````````````;:{{{f{Cn}}}Cn}{{{f{c}}}Af{}}0{cCnD`}0{{{f{Cn}}{f{Cn}}}Al}{{{f{Cn}}{f{bB`}}}Db}096{{{f{Cj}}}Cn}{c{{Ah{e}}}{}{}}0{{{f{c}}}Cd{}}````{{{f{c}}}{{f{e}}}{}{}}0{{{f{bc}}}{{f{be}}}{}{}}0{{{f{Dd}}}Ad}{{{f{b{Df{c}}}}{f{e}}}{{l{g}}}Dh{D`A`}{}}{{{f{b{Df{c}}}}}{{l{Af}}}Dh}0000{{{f{Dd}}{f{bB`}}}Db}{cc{}}0{ce{}{}}0{{{Df{c}}}cDh}{Dd{{f{b{j{h}}}}}}{{{f{{f{b{Df{c}}}}}}}AlDh}{c{{Df{c}}}Dh}{{{f{b{j{h}}}}}Dd}{{{f{b{Df{c}}}}Al}{{l{Af}}}Dh}{{{f{b{Df{c}}}}{f{{j{h}}}}}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Dj}{{l{Af}}}Dh}{{{f{b{f{b{Df{c}}}}}}{f{e}}}{{l{Af}}}Dh{A`Ab}}{{{f{b{Df{c}}}}Dl}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Dn}{{l{Af}}}Dh}22{{{f{b{f{b{Df{c}}}}}}{f{Cj}}{f{e}}}{{l{Af}}}Dh{A`Ab}}0{{{f{b{Df{c}}}}E`}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Eb}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Ed}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Ef}{{l{Af}}}Dh}{{{f{b{Df{c}}}}{Bl{Ad}}}{{l{{`{c}}}}}Dh}{{{f{b{Df{c}}}}{f{Cj}}{f{e}}}{{l{Af}}}Dh{A`Ab}}{{{f{b{Df{c}}}}{f{Cj}}Eh{f{Cj}}{f{e}}}{{l{Af}}}Dh{A`Ab}}{{{f{b{Df{c}}}}}{{l{Af}}}Dh}3{{{f{b{Df{c}}}}{f{e}}}{{l{Af}}}Dh{A`Ab}}{{{f{b{Df{c}}}}{f{Cj}}}{{l{Af}}}Dh}{{{f{b{Df{c}}}}{f{Cj}}Ad}{{l{e}}}Dh{}}{{{f{b{Df{c}}}}{f{Cj}}Eh{f{Cj}}Ad}{{l{e}}}Dh{}}{{{f{b{Df{c}}}}Ad}{{l{{f{b{Df{c}}}}}}}Dh}{{{f{b{Df{c}}}}{f{Cj}}Ad}{{l{{f{b{Df{c}}}}}}}Dh}{{{f{b{Df{c}}}}{f{Cj}}Eh{f{Cj}}Ad}{{l{{f{b{Df{c}}}}}}}Dh}{{{f{b{Df{c}}}}Ej}{{l{Af}}}Dh}{{{f{b{Df{c}}}}Eh}{{l{Af}}}Dh}{{{f{b{Df{c}}}}El}{{l{Af}}}Dh}{{{f{b{Df{c}}}}h}{{l{Af}}}Dh};9{{{f{b{Df{c}}}}{f{Cj}}Eh{f{Cj}}}{{l{Af}}}Dh}{c{{Ah{e}}}{}{}}000{{{f{c}}}Cd{}}0{{{f{b{Dh{}{{En{c}}}}}}{f{{j{h}}}}}{{Ah{Afc}}}{{Bf{Cn}}}}{{{f{bDd}}{f{{j{h}}}}}{{l{Af}}}}`","D":"Gb","p":[[0,"mut"],[5,"Bytes",0,199],[1,"reference"],[1,"u8"],[1,"slice"],[8,"Result",90],[10,"Deserialize",200],[10,"Sized",201],[10,"Serialize",202],[1,"usize"],[1,"unit"],[6,"Result",203],[10,"Deserializer",200],[1,"bool"],[10,"AsRef",204],[5,"Formatter",205],[5,"Error",205],[5,"Vec",206],[10,"Into",204],[10,"Hasher",207],[6,"Ordering",208],[6,"Option",209],[10,"Serializer",202],[17,"Output"],[10,"FnOnce",210],[5,"TypeId",211],[5,"Deserializer",50],[10,"Visitor",200],[1,"str"],[1,"tuple"],[6,"Error",90],[10,"Display",205],[8,"Result",205],[5,"SliceWriter",132],[5,"Serializer",132],[10,"Writer",132],[1,"char"],[1,"f32"],[1,"f64"],[1,"i16"],[1,"i32"],[1,"i64"],[1,"i8"],[1,"u32"],[1,"u16"],[1,"u64"],[17,"Error"]],"r":[[0,199],[1,90],[2,90]],"b":[[24,"impl-From%3CVec%3Cu8,+N%3E%3E-for-Bytes%3CN%3E"],[25,"impl-Bytes%3CN%3E"],[32,"impl-IntoIterator-for-%26mut+Bytes%3CN%3E"],[33,"impl-IntoIterator-for-%26Bytes%3CN%3E"],[34,"impl-IntoIterator-for-Bytes%3CN%3E"],[121,"impl-Error-for-Error"],[122,"impl-Error-for-Error"],[124,"impl-Debug-for-Error"],[125,"impl-Display-for-Error"],[142,"impl-SerializeStruct-for-%26mut+Serializer%3CW%3E"],[143,"impl-SerializeStructVariant-for-%26mut+Serializer%3CW%3E"],[144,"impl-SerializeTupleStruct-for-%26mut+Serializer%3CW%3E"],[145,"impl-SerializeTuple-for-%26mut+Serializer%3CW%3E"],[146,"impl-SerializeTupleVariant-for-%26mut+Serializer%3CW%3E"],[163,"impl-SerializeTupleVariant-for-%26mut+Serializer%3CW%3E"],[164,"impl-SerializeTupleStruct-for-%26mut+Serializer%3CW%3E"],[165,"impl-SerializeStructVariant-for-%26mut+Serializer%3CW%3E"],[166,"impl-SerializeStruct-for-%26mut+Serializer%3CW%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAI4AEwAAAAQABgAAAAgAAwAOAAkAGQAAABsAAwAhAAIAJgAFAC4AAAAwAAIANAAeAFgAAgB1AAkAgQADAIYABgCOAAYAmwABAJ4AJgDGAAEA"}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/search.desc/cbor_smol/cbor_smol-desc-0-.js b/search.desc/cbor_smol/cbor_smol-desc-0-.js index b0b4ae9..d138d76 100644 --- a/search.desc/cbor_smol/cbor_smol-desc-0-.js +++ b/search.desc/cbor_smol/cbor_smol-desc-0-.js @@ -1 +1 @@ -searchState.loadedDescShard("cbor_smol", 0, "Returns a mutable slice view.\nReturns an immutable slice view.\nSerialize object into newly allocated Bytes.\nAppend serialization of object to existing bytes, …\nWrap existing bytes in a Bytes<N>.\nReturns the argument unchanged.\nCalls U::from(self).\nUnwraps the Vec<u8, N>, same as into_vec.\nUnwraps the Vec<u8, N>, same as into_inner.\nConstruct a new, empty Bytes<N>.\nFallible conversion into differently sized byte buffer.\nLow-noise conversion between lengths.\nSome APIs offer an interface of the form …\nA structure for deserializing a cbor-smol message.\nReturns the argument unchanged.\nDeserialize a message of type T from a byte slice. The …\nObtain a Deserializer from a slice of bytes\nCalls U::from(self).\nDeserialize a message of type T from a byte slice. The …\nFound a bool that wasn’t 0xf4 or 0xf5\nCould not parse an enum\nExpected a i16, was too large\nExpected a i32, was too large\nExpected a i8, was too large\nExpected a different major type\nExpected a u16\nExpected a u32\nExpected a u64\nExpected a u8\nTried to parse invalid utf-8\nExpected a NULL marker\nValue may be valid, but not encoded in minimal way\nHit the end of buffer, expected more data\nContains the error value\nThis is the error type used by cbor-smol\nInexistent slice-to-array cast error. Used here to avoid …\nThis is a feature that cbor-smol intends to support, but …\nContains the success value\nThis is the Result type used by cbor-smol.\nSerde Deserialization Error\nSerde Missing required value\nSerde Serialization Error\nThe serialize buffer is full\nThis is a feature that cbor-smol will never implement\nReturns the argument unchanged.\nCalls U::from(self).\nThe type of error returned when a write operation fails.\nReturns the number of bytes written to the underlying …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nUnwrap the Writer from the Serializer.\nReturns the underlying slice.\nWraps a mutable slice so it can be used as a Writer.\nAttempts to write an entire buffer into this write.") \ No newline at end of file +searchState.loadedDescShard("cbor_smol", 0, "Returns a mutable slice view.\nReturns an immutable slice view.\nSerialize object into newly allocated Bytes.\nAppend serialization of object to existing bytes, …\nReturns the argument unchanged.\nWrap existing bytes in a Bytes<N>.\nCalls U::from(self).\nUnwraps the Vec<u8, N>, same as into_vec.\nUnwraps the Vec<u8, N>, same as into_inner.\nConstruct a new, empty Bytes<N>.\nFallible conversion into differently sized byte buffer.\nLow-noise conversion between lengths.\nSome APIs offer an interface of the form …\nA structure for deserializing a cbor-smol message.\nReturns the argument unchanged.\nDeserialize a message of type T from a byte slice. The …\nObtain a Deserializer from a slice of bytes\nCalls U::from(self).\nDeserialize a message of type T from a byte slice. The …\nFound a bool that wasn’t 0xf4 or 0xf5\nCould not parse an enum\nExpected a i16, was too large\nExpected a i32, was too large\nExpected a i64, was too large\nExpected a i8, was too large\nExpected a different major type\nExpected a u16\nExpected a u32\nExpected a u64\nExpected a u8\nTried to parse invalid utf-8\nExpected a NULL marker\nValue may be valid, but not encoded in minimal way\nHit the end of buffer, expected more data\nContains the error value\nThis is the error type used by cbor-smol\nInexistent slice-to-array cast error. Used here to avoid …\nThis is a feature that cbor-smol intends to support, but …\nContains the success value\nThis is the Result type used by cbor-smol.\nSerde Deserialization Error\nSerde Missing required value\nSerde Serialization Error\nThe serialize buffer is full\nThis is a feature that cbor-smol will never implement\nReturns the argument unchanged.\nCalls U::from(self).\nThe type of error returned when a write operation fails.\nReturns the number of bytes written to the underlying …\nReturns the argument unchanged.\nReturns the argument unchanged.\nCalls U::from(self).\nCalls U::from(self).\nUnwrap the Writer from the Serializer.\nReturns the underlying slice.\nWraps a mutable slice so it can be used as a Writer.\nAttempts to write an entire buffer into this write.") \ No newline at end of file diff --git a/src/cbor_smol/consts.rs.html b/src/cbor_smol/consts.rs.html index 8a30a89..e26db65 100644 --- a/src/cbor_smol/consts.rs.html +++ b/src/cbor_smol/consts.rs.html @@ -17,6 +17,7 @@ 17 18 19 +20
pub const MAJOR_OFFSET: u8 = 5;
 
 pub const MAJOR_POSINT: u8 = 0;
@@ -26,6 +27,7 @@
 pub const MAJOR_ARRAY: u8 = 4;
 pub const MAJOR_MAP: u8 = 5;
 pub const MAJOR_SIMPLE: u8 = 7;
+pub const MAJOR_FLOAT: u8 = 7;
 
 pub const SIMPLE_FALSE: u8 = 20;
 pub const SIMPLE_TRUE: u8 = 21;
diff --git a/src/cbor_smol/de.rs.html b/src/cbor_smol/de.rs.html
index 2459d86..51fa8eb 100644
--- a/src/cbor_smol/de.rs.html
+++ b/src/cbor_smol/de.rs.html
@@ -1077,6 +1077,193 @@
 1077
 1078
 1079
+1080
+1081
+1082
+1083
+1084
+1085
+1086
+1087
+1088
+1089
+1090
+1091
+1092
+1093
+1094
+1095
+1096
+1097
+1098
+1099
+1100
+1101
+1102
+1103
+1104
+1105
+1106
+1107
+1108
+1109
+1110
+1111
+1112
+1113
+1114
+1115
+1116
+1117
+1118
+1119
+1120
+1121
+1122
+1123
+1124
+1125
+1126
+1127
+1128
+1129
+1130
+1131
+1132
+1133
+1134
+1135
+1136
+1137
+1138
+1139
+1140
+1141
+1142
+1143
+1144
+1145
+1146
+1147
+1148
+1149
+1150
+1151
+1152
+1153
+1154
+1155
+1156
+1157
+1158
+1159
+1160
+1161
+1162
+1163
+1164
+1165
+1166
+1167
+1168
+1169
+1170
+1171
+1172
+1173
+1174
+1175
+1176
+1177
+1178
+1179
+1180
+1181
+1182
+1183
+1184
+1185
+1186
+1187
+1188
+1189
+1190
+1191
+1192
+1193
+1194
+1195
+1196
+1197
+1198
+1199
+1200
+1201
+1202
+1203
+1204
+1205
+1206
+1207
+1208
+1209
+1210
+1211
+1212
+1213
+1214
+1215
+1216
+1217
+1218
+1219
+1220
+1221
+1222
+1223
+1224
+1225
+1226
+1227
+1228
+1229
+1230
+1231
+1232
+1233
+1234
+1235
+1236
+1237
+1238
+1239
+1240
+1241
+1242
+1243
+1244
+1245
+1246
+1247
+1248
+1249
+1250
+1251
+1252
+1253
+1254
+1255
+1256
+1257
+1258
+1259
+1260
+1261
+1262
+1263
+1264
+1265
+1266
 
use serde::Deserialize;
 
 use serde::de::IntoDeserializer;
@@ -1281,6 +1468,82 @@
         }
     }
 
+    fn ignore_int(&mut self, major: u8) -> Result<()> {
+        let additional = self.expect_major(major)?;
+        match additional {
+            0..=23 => {}
+            24 => {
+                self.try_take_n(1)?;
+            }
+            25 => {
+                self.try_take_n(2)?;
+            }
+            26 => {
+                self.try_take_n(4)?;
+            }
+            27 => {
+                self.try_take_n(8)?;
+            }
+            _ => return Err(Error::DeserializeBadU16),
+        };
+        Ok(())
+    }
+
+    fn ignore_bytes(&mut self, major: u8) -> Result<()> {
+        let length = self.raw_deserialize_u32(major)? as usize;
+        self.try_take_n(length)?;
+        Ok(())
+    }
+
+    fn ignore_array(&mut self, major: u8, mult: usize) -> Result<()> {
+        let length = self.raw_deserialize_u32(major)? as usize;
+        let Some(real_length) = length.checked_mul(mult) else {
+            return Err(Error::InexistentSliceToArrayError);
+        };
+        for _ in 0..real_length {
+            self.ignore()?;
+        }
+        Ok(())
+    }
+
+    fn ignore_float(&mut self) -> Result<()> {
+        let additional = self.expect_major(7)?;
+        match additional {
+            0..=23 => {}
+            24 => {
+                self.try_take_n(1)?;
+            }
+            25 => {
+                self.try_take_n(2)?;
+            }
+            26 => {
+                self.try_take_n(4)?;
+            }
+            27 => {
+                self.try_take_n(8)?;
+            }
+            _ => return Err(Error::DeserializeBadMajor),
+        };
+        Ok(())
+    }
+
+    fn ignore(&mut self) -> Result<()> {
+        let major = self.peek_major()?;
+        match major {
+            MAJOR_POSINT | MAJOR_NEGINT => self.ignore_int(major)?,
+            MAJOR_BYTES | MAJOR_STR => self.ignore_bytes(major)?,
+            MAJOR_ARRAY => self.ignore_array(MAJOR_ARRAY, 1)?,
+            MAJOR_MAP => self.ignore_array(MAJOR_MAP, 2)?,
+            6 => {
+                self.ignore_int(6)?;
+                self.ignore()?;
+            }
+            MAJOR_FLOAT => self.ignore_float()?,
+            _ => return Err(Error::DeserializeBadMajor),
+        }
+        Ok(())
+    }
+
     // fn try_take_varint(&mut self) -> Result<usize> {
     //     for i in 0..VarintUsize::varint_usize_max() {
     //         let val = self.input.get(i).ok_or(Error::DeserializeUnexpectedEnd)?;
@@ -1514,11 +1777,26 @@
         }
     }
 
-    fn deserialize_i64<V>(self, _visitor: V) -> Result<V::Value>
+    fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value>
     where
         V: Visitor<'de>,
     {
-        Err(Error::NotYetImplemented)
+        match self.peek_major()? {
+            // TODO: figure out if this is BAAAAD for size or speed
+            major @ 0..=1 => {
+                let raw = self.raw_deserialize_u64(major)?;
+                if raw <= i64::max_value() as u64 {
+                    if major == MAJOR_POSINT {
+                        visitor.visit_i64(raw as i64)
+                    } else {
+                        visitor.visit_i64(-1 - (raw as i64))
+                    }
+                } else {
+                    Err(Error::DeserializeBadI64)
+                }
+            }
+            _ => Err(Error::DeserializeBadI16),
+        }
     }
 
     fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value>
@@ -1785,7 +2063,8 @@
         V: Visitor<'de>,
     {
         // Ignore extra fields/options
-        visitor.visit_none()
+        self.ignore()?;
+        visitor.visit_none()
     }
 }
 
@@ -1869,6 +2148,7 @@
 
 #[cfg(test)]
 mod tests {
+
     // use super::*;
     use super::from_bytes;
 
@@ -2142,6 +2422,100 @@
         assert_eq!(de, e);
     }
 
+    #[test]
+    fn de_ignored_any() {
+        use serde::de::IgnoredAny;
+        use serde::{Deserialize, Serialize};
+
+        #[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug)]
+        pub struct ValOuter<'a> {
+            inner: Outer<'a>,
+            val: &'a str,
+        }
+        #[derive(Deserialize)]
+        pub struct ValIgnored<'a> {
+            #[allow(unused)]
+            inner: IgnoredAny,
+            val: &'a str,
+        }
+
+        #[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug)]
+        pub struct Inner<'a> {
+            u8: u8,
+            u16: u16,
+            u32: u32,
+            u64: u64,
+            i8: i8,
+            i16: i16,
+            i32: i32,
+            i64: i64,
+            str: &'a str,
+            option: Option<&'a str>,
+            #[serde(with = "serde_bytes")]
+            bytes: &'a [u8],
+            unit: (),
+        }
+        #[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug)]
+        pub struct Outer<'a> {
+            u8: u8,
+            u16: u16,
+            u32: u32,
+            u64: u64,
+            i8: i8,
+            i16: i16,
+            i32: i32,
+            i64: i64,
+            str: &'a str,
+            #[serde(with = "serde_bytes")]
+            bytes: &'a [u8],
+            unit: (),
+            option: Option<&'a str>,
+            nested: Inner<'a>,
+        }
+
+        let mut buf = [0; 1024];
+        let val = Outer {
+            u8: u8::MAX,
+            u16: u16::MAX,
+            u32: u32::MAX,
+            u64: u64::MAX,
+            i8: i8::MIN,
+            i16: i16::MIN,
+            i32: i32::MIN,
+            i64: i64::MIN,
+            str: "string",
+            bytes: b"bytes",
+            unit: (),
+            option: Some("option"),
+            nested: Inner {
+                u8: 0,
+                u16: 0,
+                u32: 0,
+                u64: 0,
+                i8: i8::MIN,
+                i16: i16::MIN,
+                i32: i32::MIN,
+                i64: i64::MIN,
+                str: "",
+                option: None,
+                bytes: b"",
+                unit: (),
+            },
+        };
+        let ser = cbor_serialize(&val, &mut buf).unwrap();
+        let _: IgnoredAny = cbor_deserialize(ser).unwrap();
+
+        let val = ValOuter {
+            inner: val,
+            val: "value",
+        };
+        let ser = cbor_serialize(&val, &mut buf).unwrap();
+        let de: ValOuter = cbor_deserialize(ser).unwrap();
+        assert_eq!(val, de);
+        let de: ValIgnored = cbor_deserialize(ser).unwrap();
+        assert_eq!(de.val, "value");
+    }
+
     // #[test]
     // fn fuzzer_things() {
     //     let data: [u8; 2] = [160, 96];
diff --git a/src/cbor_smol/error.rs.html b/src/cbor_smol/error.rs.html
index 80b90b4..21423cc 100644
--- a/src/cbor_smol/error.rs.html
+++ b/src/cbor_smol/error.rs.html
@@ -145,6 +145,9 @@
 145
 146
 147
+148
+149
+150
 
#![allow(unused_variables)]
 
 use core::fmt::{Display, Formatter};
@@ -189,6 +192,8 @@
     DeserializeBadI16,
     /// Expected a i32, was too large
     DeserializeBadI32,
+    /// Expected a i64, was too large
+    DeserializeBadI64,
     /// Expected a u8
     DeserializeBadU8,
     /// Expected a u16
@@ -238,6 +243,7 @@
                 DeserializeBadI8 => "Expected a i8",
                 DeserializeBadI16 => "Expected a i16",
                 DeserializeBadI32 => "Expected a i32",
+                DeserializeBadI64 => "Expected a i64",
                 DeserializeBadMajor => "Expected a different major type",
                 DeserializeBadU8 => "Expected a u8",
                 DeserializeBadU16 => "Expected a u16",