From 478992f49c88e0f095b9588715028a605507f071 Mon Sep 17 00:00:00 2001 From: kl-botsu Date: Sat, 29 Jul 2023 18:55:01 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20khonsula?= =?UTF-8?q?bs/pot@dadcb1d782953831bde9408a807964d1a5fc845a=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- coverage/badge.svg | 4 +- coverage/index.html | 26 +- coverage/pot/benches/benchmarks.rs.html | 18 +- coverage/pot/benches/index.html | 8 +- coverage/pot/examples/index.html | 8 +- coverage/pot/examples/logs.rs.html | 18 +- coverage/pot/examples/simple.rs.html | 2 +- coverage/pot/src/de.rs.html | 3655 ++++++++++++----------- coverage/pot/src/error.rs.html | 543 +++- coverage/pot/src/format.rs.html | 180 +- coverage/pot/src/index.html | 52 +- coverage/pot/src/lib.rs.html | 12 +- coverage/pot/src/reader.rs.html | 34 +- coverage/pot/src/ser.rs.html | 1822 +++++------ coverage/pot/src/value.rs.html | 187 +- 15 files changed, 3642 insertions(+), 2927 deletions(-) diff --git a/coverage/badge.svg b/coverage/badge.svg index f89ee994..408a36f9 100644 --- a/coverage/badge.svg +++ b/coverage/badge.svg @@ -17,7 +17,7 @@ coverage coverage - 83.29% - 83.29% + 82.72% + 82.72% \ No newline at end of file diff --git a/coverage/index.html b/coverage/index.html index 727f6bf9..6312aa60 100644 --- a/coverage/index.html +++ b/coverage/index.html @@ -15,7 +15,7 @@

Lines

- 83.29 %

+ 82.72 %

@@ -23,7 +23,7 @@

Functions

- 58.43 %

+ 59 %

@@ -64,8 +64,8 @@ 122 / 123 - 67.16% - 90 / 134 + 69.4% + 93 / 134 100 0 / 0 @@ -88,8 +88,8 @@ 195 / 196 - 55.32% - 52 / 94 + 56.38% + 53 / 94 100 0 / 0 @@ -100,20 +100,20 @@ - 81.68% + 81.08% - 81.68% + 81.08% - 2618 / 3205 + 2636 / 3251 - 58.01% - 1206 / 2079 + 58.45% + 1214 / 2077 100 0 / 0 @@ -122,7 +122,7 @@ diff --git a/coverage/pot/benches/benchmarks.rs.html b/coverage/pot/benches/benchmarks.rs.html index 89b69d90..900477ff 100644 --- a/coverage/pot/benches/benchmarks.rs.html +++ b/coverage/pot/benches/benchmarks.rs.html @@ -23,7 +23,7 @@

Functions

- 67.16 %

+ 69.4 %

@@ -694,7 +694,7 @@
- 4936 + 4966
                Some(Sentence(3..100).fake_with_rng(rand))
@@ -720,7 +720,7 @@
- 5064 + 5034
                None
@@ -837,7 +837,7 @@
- 1973 + 2024
            0 => Level::Trace,
@@ -850,7 +850,7 @@
- 1932 + 2025
            1 => Level::Debug,
@@ -863,7 +863,7 @@
- 2022 + 1974
            2 => Level::Info,
@@ -876,7 +876,7 @@
- 2052 + 2036
            3 => Level::Warn,
@@ -889,7 +889,7 @@
- 2021 + 1941
            4 => Level::Error,
@@ -2756,7 +2756,7 @@
diff --git a/coverage/pot/benches/index.html b/coverage/pot/benches/index.html index 890e88ef..e702ba99 100644 --- a/coverage/pot/benches/index.html +++ b/coverage/pot/benches/index.html @@ -23,7 +23,7 @@

Functions

- 67.16 %

+ 69.4 %

@@ -64,8 +64,8 @@ 122 / 123 - 67.16% - 90 / 134 + 69.4% + 93 / 134 100 0 / 0 @@ -74,7 +74,7 @@ diff --git a/coverage/pot/examples/index.html b/coverage/pot/examples/index.html index 8d2ca727..2e4f03ab 100644 --- a/coverage/pot/examples/index.html +++ b/coverage/pot/examples/index.html @@ -23,7 +23,7 @@

Functions

- 55.32 %

+ 56.38 %

@@ -64,8 +64,8 @@ 176 / 177 - 55.13% - 43 / 78 + 56.41% + 44 / 78 100 0 / 0 @@ -98,7 +98,7 @@ diff --git a/coverage/pot/examples/logs.rs.html b/coverage/pot/examples/logs.rs.html index 06a4fa07..6e9e1141 100644 --- a/coverage/pot/examples/logs.rs.html +++ b/coverage/pot/examples/logs.rs.html @@ -23,7 +23,7 @@

Functions

- 55.13 %

+ 56.41 %

@@ -1916,7 +1916,7 @@
- 55013 + 55077
                Some(Sentence(3..100).fake_with_rng(rand))
@@ -1942,7 +1942,7 @@
- 54988 + 54924
                None
@@ -2059,7 +2059,7 @@
- 21949 + 22300
            0 => Level::Trace,
@@ -2072,7 +2072,7 @@
- 22035 + 21995
            1 => Level::Debug,
@@ -2085,7 +2085,7 @@
- 21916 + 21674
            2 => Level::Info,
@@ -2098,7 +2098,7 @@
- 21830 + 21898
            3 => Level::Warn,
@@ -2111,7 +2111,7 @@
- 22271 + 22134
            4 => Level::Error,
@@ -3185,7 +3185,7 @@
diff --git a/coverage/pot/examples/simple.rs.html b/coverage/pot/examples/simple.rs.html index 7a1dd1d8..c8bba784 100644 --- a/coverage/pot/examples/simple.rs.html +++ b/coverage/pot/examples/simple.rs.html @@ -455,7 +455,7 @@ diff --git a/coverage/pot/src/de.rs.html b/coverage/pot/src/de.rs.html index f8223cb4..563afa0f 100644 --- a/coverage/pot/src/de.rs.html +++ b/coverage/pot/src/de.rs.html @@ -15,7 +15,7 @@

Lines

- 87.5 %

+ 88.21 %

@@ -112,7 +112,7 @@
-
use derive_where::derive_where;
+
use format::Kind;
-
use format::Kind;
+
use serde::de::{
-
use serde::de::{
+
    self, DeserializeSeed, EnumAccess, Error as _, MapAccess, SeqAccess, VariantAccess, Visitor,
-
    self, DeserializeSeed, EnumAccess, Error as _, MapAccess, SeqAccess, VariantAccess, Visitor,
+
};
-
};
+
#[cfg(feature = "tracing")]
-
#[cfg(feature = "tracing")]
+
use tracing::instrument;
-
use tracing::instrument;
+

             
-

+                
use crate::format::{
-
use crate::format::{
+
    self, Atom, Float, InnerFloat, InnerInteger, Integer, Nucleus, CURRENT_VERSION,
-
    self, Atom, Float, InnerFloat, InnerInteger, Integer, Nucleus, CURRENT_VERSION,
+
};
-
};
+
use crate::reader::{IoReader, Reader, SliceReader};
-
use crate::reader::{IoReader, Reader, SliceReader};
+
use crate::{Error, Result};
-
use crate::{Error, Result};
+

             
-

+                
/// Deserializer for the Pot format.
-
/// Deserializer for the Pot format.
+
pub struct Deserializer<'s, 'de, R: Reader<'de>> {
21
- 1110 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
#[derive_where(Debug)]
+
+
    input: R,
-
pub struct Deserializer<'s, 'de, R: Reader<'de>> {
+
    symbols: SymbolMap<'s, 'de>,
-
    #[derive_where(skip)]
+
    peeked_atom: VecDeque<Atom<'de>>,
-
    input: R,
+
    remaining_budget: usize,
-
    symbols: SymbolMap<'s, 'de>,
+
}
-
    peeked_atom: VecDeque<Atom<'de>>,
+

             
-
    remaining_budget: usize,
+
impl<'s, 'de, R: Reader<'de>> Debug for Deserializer<'s, 'de, R> {
28
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1109
-
-
}
+
+
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
29
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1109
-
-

+            
+
        f.debug_struct("Deserializer")
30
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1109
-
-
impl<'s, 'de> Deserializer<'s, 'de, SliceReader<'de>> {
+
+
            .field("symbols", &self.symbols)
31
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1109
-
-
    /// Returns a new deserializer for `input`.
+
+
            .field("peeked_atom", &self.peeked_atom)
- 144 + 1109
-
    pub(crate) fn from_slice(input: &'de [u8], maximum_bytes_allocatable: usize) -> Result<Self> {
+
            .field("remaining_budget", &self.remaining_budget)
- 144 + 1109
-
        Self::from_slice_with_symbols(input, SymbolMap::new(), maximum_bytes_allocatable)
+
            .finish()
- 144 + 1109
    }
@@ -489,7 +489,7 @@
-

+                
}
36
- 150 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn from_slice_with_symbols(
+
+

             
37
- 150 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        input: &'de [u8],
+
+
impl<'s, 'de> Deserializer<'s, 'de, SliceReader<'de>> {
38
- 150 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        symbols: SymbolMap<'s, 'de>,
+
+
    /// Returns a new deserializer for `input`.
- 150 + 144
-
        maximum_bytes_allocatable: usize,
+
    pub(crate) fn from_slice(input: &'de [u8], maximum_bytes_allocatable: usize) -> Result<Self> {
- 150 + 144
-
    ) -> Result<Self> {
+
        Self::from_slice_with_symbols(input, SymbolMap::new(), maximum_bytes_allocatable)
- 150 + 144
-
        Self::new(SliceReader::from(input), symbols, maximum_bytes_allocatable)
+
    }
42
- 150 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    }
+
+

             
43
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 150
-
-

+            
+
    fn from_slice_with_symbols(
44
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 150
-
-
    /// Returns `true` if the input has been consumed completely.
+
+
        input: &'de [u8],
45
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 150
-
-
    #[must_use]
+
+
        symbols: SymbolMap<'s, 'de>,
- 131 + 150
-
    pub fn end_of_input(&self) -> bool {
+
        maximum_bytes_allocatable: usize,
- 131 + 150
-
        self.input.data.is_empty() && self.peeked_atom.is_empty()
+
    ) -> Result<Self> {
- 131 + 150
-
    }
+
        Self::new(SliceReader::from(input), symbols, maximum_bytes_allocatable)
49
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 150
-
-
}
+
+
    }
-
impl<'s, 'de, R: ReadBytesExt> Deserializer<'s, 'de, IoReader<R>> {
+
    /// Returns `true` if the input has been consumed completely.
-
    /// Returns a new deserializer for `input`.
+
    #[must_use]
- 64 + 131
-
    pub(crate) fn from_read(input: R, maximum_bytes_allocatable: usize) -> Result<Self> {
+
    pub fn end_of_input(&self) -> bool {
- 64 + 131
-
        Self::from_read_with_symbols(input, SymbolMap::new(), maximum_bytes_allocatable)
+
        self.input.data.is_empty() && self.peeked_atom.is_empty()
- 64 + 131
    }
@@ -762,7 +762,7 @@
-

+                
}
57
- 64 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn from_read_with_symbols(
+
+

             
58
- 64 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        input: R,
+
+
impl<'s, 'de, R: ReadBytesExt> Deserializer<'s, 'de, IoReader<R>> {
59
- 64 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        symbols: SymbolMap<'s, 'de>,
+
+
    /// Returns a new deserializer for `input`.
-
        maximum_bytes_allocatable: usize,
+
    pub(crate) fn from_read(input: R, maximum_bytes_allocatable: usize) -> Result<Self> {
-
    ) -> Result<Self> {
+
        Self::from_read_with_symbols(input, SymbolMap::new(), maximum_bytes_allocatable)
-
        Self::new(IoReader::new(input), symbols, maximum_bytes_allocatable)
+
    }
63
- 64 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    }
+
+

             
64
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 64
-
-
}
+
+
    fn from_read_with_symbols(
65
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 64
-
-

+            
+
        input: R,
66
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 64
-
-
impl<'s, 'de, R: Reader<'de>> Deserializer<'s, 'de, R> {
+
+
        symbols: SymbolMap<'s, 'de>,
- 214 + 64
-
    pub(crate) fn new(
+
        maximum_bytes_allocatable: usize,
- 214 + 64
-
        input: R,
+
    ) -> Result<Self> {
- 214 + 64
-
        mut symbols: SymbolMap<'s, 'de>,
+
        Self::new(IoReader::new(input), symbols, maximum_bytes_allocatable)
- 214 + 64
-
        maximum_bytes_allocatable: usize,
+
    }
71
- 214 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    ) -> Result<Self> {
+
+
}
72
- 214 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        // TODO make this configurable
+
+

             
73
- 214 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        symbols.reserve(1024);
+
+
impl<'s, 'de, R: Reader<'de>> Deserializer<'s, 'de, R> {
-
        let mut deserializer = Deserializer {
+
    pub(crate) fn new(
-
            input,
+
        input: R,
-
            symbols,
+
        mut symbols: SymbolMap<'s, 'de>,
-
            peeked_atom: VecDeque::new(),
+
        maximum_bytes_allocatable: usize,
-
            remaining_budget: maximum_bytes_allocatable,
+
    ) -> Result<Self> {
-
        };
+
        // TODO make this configurable
-
        deserializer.read_header()?;
+
        symbols.reserve(1024);
- 213 + 214
-
        Ok(deserializer)
+
        let mut deserializer = Deserializer {
-
    }
+
            input,
83
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 214
-
-

+            
+
            symbols,
-
    fn read_header(&mut self) -> Result<()> {
+
            peeked_atom: VecDeque::new(),
-
        let version = format::read_header(&mut self.input)?;
+
            remaining_budget: maximum_bytes_allocatable,
-
        if version == CURRENT_VERSION {
+
        };
- 213 + 214
-
            Ok(())
+
        deserializer.read_header()?;
88
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 213
-
-
        } else {
+
+
        Ok(deserializer)
- 1 + 214
-
            Err(Error::IncompatibleVersion)
+
    }
-
        }
+

             
-
    }
+
    fn read_header(&mut self) -> Result<()> {
92
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 214
-
-

+            
+
        let version = format::read_header(&mut self.input)?;
93
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 214
-
-
    fn read_atom(&mut self) -> Result<Atom<'de>> {
+
+
        if version == CURRENT_VERSION {
- 170647 + 213
-
        if let Some(peeked) = self.peeked_atom.pop_front() {
+
            Ok(())
95
- 10020 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
            Ok(peeked)
+
+
        } else {
96
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1
-
-
        } else {
+
+
            Err(Error::IncompatibleVersion)
97
- 160627 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
            format::read_atom(&mut self.input, &mut self.remaining_budget)
+
+
        }
98
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 214
-
-
        }
+
+
    }
99
- 170647 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    }
+
+

             
-

+                
    fn read_atom(&mut self) -> Result<Atom<'de>> {
101
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 170647
-
-
    #[allow(clippy::missing_panics_doc)]
+
+
        if let Some(peeked) = self.peeked_atom.pop_front() {
-
    fn peek_atom_at(&mut self, index: usize) -> Result<&Atom<'_>> {
+
            Ok(peeked)
103
- 20040 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        while index >= self.peeked_atom.len() {
+
+
        } else {
- 10020 + 160627
-
            let atom = self.read_atom()?;
+
            format::read_atom(&mut self.input, &mut self.remaining_budget)
105
- 10020 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
            self.peeked_atom.push_back(atom);
+
+
        }
106
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 170647
-
-
        }
+
+
    }
108
- 10020 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        Ok(&self.peeked_atom[index])
+
+
    #[allow(clippy::missing_panics_doc)]
-
    }
+
    fn peek_atom_at(&mut self, index: usize) -> Result<&Atom<'_>> {
110
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 20040
-
-

+            
+
        while index >= self.peeked_atom.len() {
111
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 10020
-
-
    #[allow(clippy::missing_panics_doc)]
+
+
            let atom = self.read_atom()?;
-
    fn peek_atom(&mut self) -> Result<&Atom<'_>> {
+
            self.peeked_atom.push_back(atom);
113
- 10020 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        self.peek_atom_at(0)
+
+
        }
114
- 10020 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    }
+
+

             
115
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 10020
-
-

+            
+
        Ok(&self.peeked_atom[index])
- 160227 + 10020
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
    }
-
    #[allow(clippy::cast_possible_truncation)]
+

             
-
    fn visit_symbol<V>(&mut self, atom: &Atom<'_>, visitor: V) -> Result<V::Value>
+
    #[allow(clippy::missing_panics_doc)]
119
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 10020
-
-
    where
+
+
    fn peek_atom(&mut self) -> Result<&Atom<'_>> {
120
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 10020
-
-
        V: Visitor<'de>,
+
+
        self.peek_atom_at(0)
121
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 10020
-
-
    {
+
+
    }
-
        let is_id = atom.arg & 0b1 != 0;
+

             
123
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 160227
-
-
        let arg = atom.arg >> 1;
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
        if is_id {
+
    #[allow(clippy::cast_possible_truncation)]
-
            self.symbols.visit_symbol_id(arg, visitor)
+
    fn visit_symbol<V>(&mut self, atom: &Atom<'_>, visitor: V) -> Result<V::Value>
-
        } else {
+
    where
-
            // New symbol
+
        V: Visitor<'de>,
-
            let name = self.input.buffered_read_bytes(arg as usize)?;
+
    {
-
            match name {
+
        let is_id = atom.arg & 0b1 != 0;
-
                Cow::Borrowed(name) => {
+
        let arg = atom.arg >> 1;
-
                    let name = std::str::from_utf8(name)?;
+
        if is_id {
-
                    self.symbols.push(Cow::Borrowed(name));
+
            self.symbols.visit_symbol_id(arg, visitor)
-
                    visitor.visit_borrowed_str(name)
+
        } else {
-
                }
+
            // New symbol
-
                Cow::Owned(name) => {
+
            let name = self.input.buffered_read_bytes(arg as usize)?;
-
                    let name = String::from_utf8(name)?;
+
            match name {
-
                    let result = visitor.visit_str(&name);
+
                Cow::Borrowed(name) => {
-
                    self.symbols.push(Cow::Owned(name));
+
                    let name = std::str::from_utf8(name)?;
-
                    result
+
                    self.symbols.push(Cow::Borrowed(name));
-
                }
+
                    visitor.visit_borrowed_str(name)
-
            }
+
                }
-
        }
+
                Cow::Owned(name) => {
-
    }
+
                    let name = String::from_utf8(name)?;
-
}
+
                    let result = visitor.visit_str(&name);
-

+                
                    self.symbols.push(Cow::Owned(name));
-
impl<'a, 'de, 's, R: Reader<'de>> de::Deserializer<'de> for &'a mut Deserializer<'s, 'de, R> {
+
                    result
-
    type Error = Error;
+
                }
-

+                
            }
149
- 1 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn is_human_readable(&self) -> bool {
+
+
        }
150
- 1 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        false
+
+
    }
151
- 1 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    }
+
+
}
-
    // Look at the input data to decide what Serde data model type to
+
impl<'a, 'de, 's, R: Reader<'de>> de::Deserializer<'de> for &'a mut Deserializer<'s, 'de, R> {
-
    // deserialize as. Not all data formats are able to support this operation.
+
    type Error = Error;
-
    // Formats that support `deserialize_any` are known as self-describing.
+

             
- 59 + 1
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
    fn is_human_readable(&self) -> bool {
157
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1
-
-
    #[allow(clippy::cast_possible_truncation)]
+
+
        false
158
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1
-
-
    fn deserialize_any<V>(self, visitor: V) -> Result<V::Value>
+
+
    }
-
    where
+

             
-
        V: Visitor<'de>,
+
    // Look at the input data to decide what Serde data model type to
-
    {
+
    // deserialize as. Not all data formats are able to support this operation.
-
        let atom = self.read_atom()?;
+
    // Formats that support `deserialize_any` are known as self-describing.
163
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 59
-
-

+            
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
        match atom.kind {
+
    #[allow(clippy::cast_possible_truncation)]
-
            Kind::Special => match &atom.nucleus {
+
    fn deserialize_any<V>(self, visitor: V) -> Result<V::Value>
-
                Some(Nucleus::Boolean(value)) => visitor.visit_bool(*value),
+
    where
-
                Some(Nucleus::Unit) => visitor.visit_unit(),
+
        V: Visitor<'de>,
-
                Some(Nucleus::Named) => visitor.visit_map(AtomList::new(self, Some(1))),
+
    {
-
                Some(Nucleus::DynamicMap) => visitor.visit_map(AtomList::new(self, None)),
+
        let atom = self.read_atom()?;
-
                Some(Nucleus::DynamicEnd) => Err(Error::custom("unexpected dynamic end")),
+

             
-
                Some(Nucleus::Bytes(_) | Nucleus::Integer(_) | Nucleus::Float(_)) => {
+
        match atom.kind {
-
                    unreachable!("read_atom can't return this nucleus as a Special")
+
            Kind::Special => match &atom.nucleus {
-
                }
+
                Some(Nucleus::Boolean(value)) => visitor.visit_bool(*value),
-
                None => visitor.visit_none(),
+
                Some(Nucleus::Unit) => visitor.visit_unit(),
-
            },
+
                Some(Nucleus::Named) => visitor.visit_map(AtomList::new(self, Some(1))),
-
            Kind::Int => match atom.nucleus {
+
                Some(Nucleus::DynamicMap) => visitor.visit_map(AtomList::new(self, None)),
-
                Some(Nucleus::Integer(Integer(InnerInteger::I8(value)))) => visitor.visit_i8(value),
+
                Some(Nucleus::DynamicEnd) => Err(Error::custom("unexpected dynamic end")),
-
                Some(Nucleus::Integer(Integer(InnerInteger::I16(value)))) => {
+
                Some(Nucleus::Bytes(_) | Nucleus::Integer(_) | Nucleus::Float(_)) => {
-
                    visitor.visit_i16(value)
+
                    unreachable!("read_atom can't return this nucleus as a Special")
-
                Some(Nucleus::Integer(Integer(InnerInteger::I32(value)))) => {
+
                None => visitor.visit_none(),
-
                    visitor.visit_i32(value)
+
            },
-
                }
+
            Kind::Int => match atom.nucleus {
-
                Some(Nucleus::Integer(Integer(InnerInteger::I64(value)))) => {
+
                Some(Nucleus::Integer(Integer(InnerInteger::I8(value)))) => visitor.visit_i8(value),
-
                    visitor.visit_i64(value)
+
                Some(Nucleus::Integer(Integer(InnerInteger::I16(value)))) => {
-
                }
+
                    visitor.visit_i16(value)
-
                Some(Nucleus::Integer(Integer(InnerInteger::I128(value)))) => {
+
                }
-
                    visitor.visit_i128(value)
+
                Some(Nucleus::Integer(Integer(InnerInteger::I32(value)))) => {
-
                }
+
                    visitor.visit_i32(value)
-
                _ => unreachable!("read_atom should never return anything else"),
+
                }
-
            },
+
                Some(Nucleus::Integer(Integer(InnerInteger::I64(value)))) => {
-
            Kind::UInt => match atom.nucleus {
+
                    visitor.visit_i64(value)
-
                Some(Nucleus::Integer(Integer(InnerInteger::U8(value)))) => visitor.visit_u8(value),
+
                }
-
                Some(Nucleus::Integer(Integer(InnerInteger::U16(value)))) => {
+
                Some(Nucleus::Integer(Integer(InnerInteger::I128(value)))) => {
-
                    visitor.visit_u16(value)
+
                    visitor.visit_i128(value)
-
                Some(Nucleus::Integer(Integer(InnerInteger::U32(value)))) => {
+
                _ => unreachable!("read_atom should never return anything else"),
-
                    visitor.visit_u32(value)
+
            },
-
                }
+
            Kind::UInt => match atom.nucleus {
-
                Some(Nucleus::Integer(Integer(InnerInteger::U64(value)))) => {
+
                Some(Nucleus::Integer(Integer(InnerInteger::U8(value)))) => visitor.visit_u8(value),
-
                    visitor.visit_u64(value)
+
                Some(Nucleus::Integer(Integer(InnerInteger::U16(value)))) => {
-
                }
+
                    visitor.visit_u16(value)
-
                Some(Nucleus::Integer(Integer(InnerInteger::U128(value)))) => {
+
                }
-
                    visitor.visit_u128(value)
+
                Some(Nucleus::Integer(Integer(InnerInteger::U32(value)))) => {
-
                }
+
                    visitor.visit_u32(value)
-
                _ => unreachable!("read_atom should never return anything else"),
+
                }
-
            },
+
                Some(Nucleus::Integer(Integer(InnerInteger::U64(value)))) => {
-
            Kind::Float => match atom.nucleus {
+
                    visitor.visit_u64(value)
-
                Some(Nucleus::Float(Float(InnerFloat::F32(value)))) => visitor.visit_f32(value),
+
                }
-
                Some(Nucleus::Float(Float(InnerFloat::F64(value)))) => visitor.visit_f64(value),
+
                Some(Nucleus::Integer(Integer(InnerInteger::U128(value)))) => {
-
                _ => unreachable!("read_atom should never return anything else"),
+
                    visitor.visit_u128(value)
-
            },
+
                }
-
            Kind::Sequence => visitor.visit_seq(AtomList::new(self, Some(atom.arg as usize))),
+
                _ => unreachable!("read_atom should never return anything else"),
-
            Kind::Map => visitor.visit_map(AtomList::new(self, Some(atom.arg as usize))),
+
            },
-
            Kind::Symbol => self.visit_symbol(&atom, visitor),
+
            Kind::Float => match atom.nucleus {
-
            Kind::Bytes => match &atom.nucleus {
+
                Some(Nucleus::Float(Float(InnerFloat::F32(value)))) => visitor.visit_f32(value),
-
                Some(Nucleus::Bytes(bytes)) => match bytes {
+
                Some(Nucleus::Float(Float(InnerFloat::F64(value)))) => visitor.visit_f64(value),
-
                    Cow::Borrowed(bytes) => {
+
                _ => unreachable!("read_atom should never return anything else"),
-
                        if let Ok(as_str) = std::str::from_utf8(bytes) {
+
            },
-
                            visitor.visit_borrowed_str(as_str)
+
            Kind::Sequence => visitor.visit_seq(AtomList::new(self, Some(atom.arg as usize))),
-
                        } else {
+
            Kind::Map => visitor.visit_map(AtomList::new(self, Some(atom.arg as usize))),
-
                            visitor.visit_borrowed_bytes(bytes)
+
            Kind::Symbol => self.visit_symbol(&atom, visitor),
-
                        }
+
            Kind::Bytes => match &atom.nucleus {
-
                    }
+
                Some(Nucleus::Bytes(bytes)) => match bytes {
-
                    Cow::Owned(bytes) => {
+
                    Cow::Borrowed(bytes) => {
-
                            visitor.visit_str(as_str)
+
                            visitor.visit_borrowed_str(as_str)
-
                            visitor.visit_bytes(bytes)
+
                            visitor.visit_borrowed_bytes(bytes)
-
                },
+
                    Cow::Owned(bytes) => {
-
                None => visitor.visit_none(),
+
                        if let Ok(as_str) = std::str::from_utf8(bytes) {
-
                // The parsing operation guarantees that this will always be bytes.
+
                            visitor.visit_str(as_str)
-
                _ => unreachable!(),
+
                        } else {
-
            },
+
                            visitor.visit_bytes(bytes)
-
        }
+
                        }
-
    }
+
                    }
-

+                
                },
240
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
                None => visitor.visit_none(),
-
    fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value>
+
                // The parsing operation guarantees that this will always be bytes.
-
    where
+
                _ => unreachable!(),
-
        V: Visitor<'de>,
+
            },
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
247
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
            Kind::Special | Kind::UInt | Kind::Int => match atom.nucleus {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                Some(Nucleus::Integer(integer)) => visitor.visit_bool(!integer.is_zero()),
+
    fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value>
-
                Some(Nucleus::Boolean(b)) => visitor.visit_bool(b),
+
    where
-
                Some(Nucleus::Unit) | None => visitor.visit_bool(false),
+
        V: Visitor<'de>,
-
                other => Err(Error::custom(format!(
+
    {
-
                    "expected bool nucleus, got {other:?}"
+
        let atom = self.read_atom()?;
-
                ))),
+
        match atom.kind {
-
            },
+
            Kind::Special | Kind::UInt | Kind::Int => match atom.nucleus {
-
            other => Err(Error::custom(format!("expected bool, got {other:?}"))),
+
                Some(Nucleus::Integer(integer)) => visitor.visit_bool(!integer.is_zero()),
-
        }
+
                Some(Nucleus::Boolean(b)) => visitor.visit_bool(b),
-
    }
+
                Some(Nucleus::Unit) | None => visitor.visit_bool(false),
-

+                
                other => Err(Error::custom(format!(
259
- 12 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
                    "expected bool nucleus, got {other:?}"
-
    fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value>
+
                ))),
-
    where
+
            },
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected bool, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
266
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 12
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_i8(integer.as_i8()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::UInt | Kind::Int => {
-
                visitor.visit_i8(0)
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_i8(integer.as_i8()?)
-
            other => Err(Error::custom(format!("expected i8, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
280
- 12 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_i8(0)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected i8, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
287
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 12
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_i16(integer.as_i16()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::UInt | Kind::Int => {
-
                visitor.visit_i16(0)
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_i16(integer.as_i16()?)
-
            other => Err(Error::custom(format!("expected i16, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
301
- 13 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_i16(0)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected i16, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
308
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 13
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_i32(integer.as_i32()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::UInt | Kind::Int => {
-
                visitor.visit_i32(0)
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_i32(integer.as_i32()?)
-
            other => Err(Error::custom(format!("expected i32, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
322
- 12 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_i32(0)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected i32, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
329
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 12
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_i64(integer.as_i64()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::UInt | Kind::Int => {
-
                visitor.visit_i64(0)
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_i64(integer.as_i64()?)
-
            other => Err(Error::custom(format!("expected i64, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
343
- 58 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_i128<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_i64(0)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected i64, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
350
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 58
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_i128<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_i128(integer.as_i128()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::UInt | Kind::Int => {
-
                visitor.visit_i128(0)
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_i128(integer.as_i128()?)
-
            other => Err(Error::custom(format!("expected i128, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
364
- 34 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_i128(0)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected i128, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
371
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 34
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_u8(integer.as_u8()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::UInt | Kind::Int => {
-
                visitor.visit_u8(0)
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_u8(integer.as_u8()?)
-
            other => Err(Error::custom(format!("expected u8, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
385
- 20018 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_u8(0)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected u8, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
392
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 20018
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_u16(integer.as_u16()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::UInt | Kind::Int => {
-
                visitor.visit_u16(0)
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_u16(integer.as_u16()?)
-
            other => Err(Error::custom(format!("expected u16, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
406
- 15 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_u16(0)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected u16, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
413
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 15
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_u32(integer.as_u32()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::UInt | Kind::Int => {
-
                visitor.visit_u32(0)
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_u32(integer.as_u32()?)
-
            other => Err(Error::custom(format!("expected u32, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
427
- 20036 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_u32(0)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected u32, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
434
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 20036
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_u64(integer.as_u64()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::UInt | Kind::Int => {
-
                visitor.visit_u64(0)
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_u64(integer.as_u64()?)
-
            other => Err(Error::custom(format!("expected u64, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
448
- 38 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_u128<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_u64(0)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected u64, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
455
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 38
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_u128<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_u128(integer.as_u128()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::UInt | Kind::Int => {
-
                visitor.visit_u128(0)
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_u128(integer.as_u128()?)
-
            other => Err(Error::custom(format!("expected i64, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
469
- 13 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_u128(0)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected i64, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
476
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 13
-
-
            Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_f32(integer.as_f32()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-

+                
            Kind::Int => {
-
            Kind::Float => {
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
                if let Some(Nucleus::Float(float)) = atom.nucleus {
+
                    visitor.visit_f32(integer.as_f32()?)
-
                    visitor.visit_f32(float.as_f32()?)
+
                } else {
-
                } else {
+
                    unreachable!("read_atom should never return anything else")
-
                    unreachable!("read_atom should never return anything else")
+
                }
-
                }
+
            }
-
            }
+

             
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::Float => {
-
                visitor.visit_f32(0.)
+
                if let Some(Nucleus::Float(float)) = atom.nucleus {
-
            }
+
                    visitor.visit_f32(float.as_f32()?)
-
            other => Err(Error::custom(format!("expected f32, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
498
- 20 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_f32(0.)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected f32, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
505
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 20
-
-
            Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_f64(integer.as_f64()?)
+
    where
-
                } else {
+
        V: Visitor<'de>,
-
                    unreachable!("read_atom should never return anything else")
+
    {
-
                }
+
        let atom = self.read_atom()?;
-
            }
+
        match atom.kind {
-

+                
            Kind::Int => {
-
            Kind::Float => {
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
                if let Some(Nucleus::Float(float)) = atom.nucleus {
+
                    visitor.visit_f64(integer.as_f64()?)
-
                    visitor.visit_f64(float.as_f64())
+
                } else {
-
                } else {
+
                    unreachable!("read_atom should never return anything else")
-
                    unreachable!("read_atom should never return anything else")
+
                }
-
                }
+
            }
-
            }
+

             
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
            Kind::Float => {
-
                visitor.visit_f64(0.)
+
                if let Some(Nucleus::Float(float)) = atom.nucleus {
-
            }
+
                    visitor.visit_f64(float.as_f64())
-
            other => Err(Error::custom(format!("expected f64, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
527
- 11 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_char<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_f64(0.)
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected f64, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
534
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 12
-
-
            Kind::UInt | Kind::Int => {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
    fn deserialize_char<V>(self, visitor: V) -> Result<V::Value>
-
                    visitor.visit_char(
+
    where
-
                        char::from_u32(integer.as_u32()?)
+
        V: Visitor<'de>,
538
- 1 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
                            .ok_or_else(|| Error::InvalidUtf8(String::from("invalid char")))?,
+
+
    {
-
                    )
+
        let atom = self.read_atom()?;
-
                } else {
+
        match atom.kind {
-
                    unreachable!("read_atom should never return anything else")
+
            Kind::UInt | Kind::Int => {
-
                }
+
                if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
            }
+
                    visitor.visit_char(
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
                        char::from_u32(integer.as_u32()?)
545
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1
-
-
                visitor.visit_char('\0')
+
+
                            .ok_or_else(|| Error::InvalidUtf8(String::from("invalid char")))?,
-
            }
+
                    )
-
            other => Err(Error::custom(format!("expected char, got {other:?}"))),
+
                } else {
-
        }
+
                    unreachable!("read_atom should never return anything else")
-
    }
+
                }
-

+                
            }
551
- 69904 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_str<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_char('\0')
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected char, got {other:?}"))),
-
    {
+
        }
-
        let atom = self.read_atom()?;
+
    }
-
        match atom.kind {
+

             
558
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 69968
-
-
            Kind::Bytes => match atom.nucleus {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
                Some(Nucleus::Bytes(bytes)) => match bytes {
+
    fn deserialize_str<V>(self, visitor: V) -> Result<V::Value>
-
                    Cow::Borrowed(bytes) => visitor.visit_borrowed_str(std::str::from_utf8(bytes)?),
+
    where
-
                    Cow::Owned(bytes) => visitor.visit_str(std::str::from_utf8(&bytes)?),
+
        V: Visitor<'de>,
-
                },
+
    {
-
                _ => unreachable!("read_atom should never return anything else"),
+
        let atom = self.read_atom()?;
-
            },
+
        match atom.kind {
-
            Kind::Symbol => self.visit_symbol(&atom, visitor),
+
            Kind::Bytes => match atom.nucleus {
-
            Kind::Special => {
+
                Some(Nucleus::Bytes(bytes)) => match bytes {
-
                if matches!(atom.nucleus, Some(Nucleus::Named)) {
+
                    Cow::Borrowed(bytes) => visitor.visit_borrowed_str(std::str::from_utf8(bytes)?),
-
                    // If we encounter a named entity here, skip it and trust that serde will decode the following information correctly.
+
                    Cow::Owned(bytes) => visitor.visit_str(std::str::from_utf8(&bytes)?),
-
                    self.deserialize_str(visitor)
+
                },
-
                } else if matches!(atom.nucleus, Some(Nucleus::Unit) | None) {
+
                _ => unreachable!("read_atom should never return anything else"),
-
                    visitor.visit_borrowed_str("")
+
            },
-
                } else {
+
            Kind::Symbol => self.visit_symbol(&atom, visitor),
-
                    self.visit_symbol(&atom, visitor)
+
            Kind::Special => {
-
                }
+
                if matches!(atom.nucleus, Some(Nucleus::Named)) {
-
            }
+
                    // If we encounter a named entity here, skip it and trust that serde will decode the following information correctly.
-
            other => Err(Error::custom(format!("expected str, got {other:?}"))),
+
                    self.deserialize_str(visitor)
-
        }
+
                } else if matches!(atom.nucleus, Some(Nucleus::Unit) | None) {
-
    }
+
                    visitor.visit_borrowed_str("")
-

+                
                } else {
580
- 49890 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
                    self.visit_symbol(&atom, visitor)
-
    fn deserialize_string<V>(self, visitor: V) -> Result<V::Value>
+
                }
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected str, got {other:?}"))),
-
    {
+
        }
-
        self.deserialize_str(visitor)
+
    }
-
    }
+

             
587
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 49954
-
-

+            
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
588
- 16 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
    fn deserialize_string<V>(self, visitor: V) -> Result<V::Value>
-
    #[allow(clippy::cast_possible_truncation)]
+
    where
-
    fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value>
+
        V: Visitor<'de>,
-
    where
+
    {
-
        V: Visitor<'de>,
+
        self.deserialize_str(visitor)
-
    {
+
    }
-
        let atom = self.read_atom()?;
+

             
595
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 16
-
-
        match atom.kind {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
            Kind::Bytes => match atom.nucleus {
+
    #[allow(clippy::cast_possible_truncation)]
-
                Some(Nucleus::Bytes(bytes)) => match bytes {
+
    fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value>
-
                    Cow::Borrowed(bytes) => visitor.visit_borrowed_bytes(bytes),
+
    where
-
                    Cow::Owned(bytes) => visitor.visit_bytes(&bytes),
+
        V: Visitor<'de>,
-
                },
+
    {
-
                _ => unreachable!("read_atom should never return anything else"),
+
        let atom = self.read_atom()?;
-
            },
+
        match atom.kind {
-
            Kind::Sequence => {
+
            Kind::Bytes => match atom.nucleus {
-
                let mut buffer = Vec::with_capacity(atom.arg as usize);
+
                Some(Nucleus::Bytes(bytes)) => match bytes {
-
                for _ in 0..atom.arg {
+
                    Cow::Borrowed(bytes) => visitor.visit_borrowed_bytes(bytes),
-
                    let atom = self.read_atom()?;
+
                    Cow::Owned(bytes) => visitor.visit_bytes(&bytes),
-

+                
                },
-
                    if let Some(Nucleus::Integer(integer)) = atom.nucleus {
+
                _ => unreachable!("read_atom should never return anything else"),
-
                        buffer.push(integer.as_u8()?);
+
            },
-
                    } else {
+
            Kind::Sequence => {
-
                        return Err(Error::custom(
+
                let mut buffer = Vec::with_capacity(atom.arg as usize);
-
                            "expected byte array, encountered non-integer atom",
+
                for _ in 0..atom.arg {
-
                        ));
+
                    let atom = self.read_atom()?;
-
                    }
+

             
-
                }
+
                    if let Some(Nucleus::Integer(integer)) = atom.nucleus {
-
                visitor.visit_byte_buf(buffer)
+
                        buffer.push(integer.as_u8()?);
-
            }
+
                    } else {
-
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
+
                        return Err(Error::custom(
-
                visitor.visit_borrowed_bytes(b"")
+
                            "expected byte array, encountered non-integer atom",
-
            }
+
                        ));
-
            other => Err(Error::custom(format!("expected bytes, got {other:?}"))),
+
                    }
-
        }
+
                }
-
    }
+
                visitor.visit_byte_buf(buffer)
-

+                
            }
625
- 6 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Kind::Special if matches!(atom.nucleus, Some(Nucleus::Unit) | None) => {
-
    fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value>
+
                visitor.visit_borrowed_bytes(b"")
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected bytes, got {other:?}"))),
-
    {
+
        }
-
        self.deserialize_bytes(visitor)
+
    }
-
    }
+

             
632
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 6
-
-

+            
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
633
- 20017 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
    fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value>
-
    fn deserialize_option<V>(self, visitor: V) -> Result<V::Value>
+
    where
-
    where
+
        V: Visitor<'de>,
-
        V: Visitor<'de>,
+
    {
-
    {
+
        self.deserialize_bytes(visitor)
-
        let atom = self.peek_atom()?;
+
    }
-
        if matches!(atom.kind, Kind::Special) && atom.nucleus.is_none() {
+

             
640
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 20017
-
-
            // Consume the atom.
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
            drop(self.read_atom()?);
+
    fn deserialize_option<V>(self, visitor: V) -> Result<V::Value>
-
            return visitor.visit_none();
+
    where
-
        }
+
        V: Visitor<'de>,
-

+                
    {
-
        visitor.visit_some(self)
+
        let atom = self.peek_atom()?;
-
    }
+
        if matches!(atom.kind, Kind::Special) && atom.nucleus.is_none() {
-

+                
            // Consume the atom.
-
    // In Serde, unit means an anonymous value containing no data.
+
            drop(self.read_atom()?);
649
- 4 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            return visitor.visit_none();
-
    fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value>
+
        }
-
    where
+

             
-
        V: Visitor<'de>,
+
        visitor.visit_some(self)
-
    {
+
    }
-
        let atom = self.read_atom()?;
+

             
-
        if atom.kind == Kind::Special && matches!(atom.nucleus, Some(Nucleus::Unit)) {
+
    // In Serde, unit means an anonymous value containing no data.
656
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 4
-
-
            visitor.visit_unit()
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
        } else {
+
    fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value>
-
            Err(Error::custom(format!("expected unit, got {:?}", atom.kind)))
+
    where
-
        }
+
        V: Visitor<'de>,
-
    }
+
    {
-

+                
        let atom = self.read_atom()?;
-
    // Unit struct means a named value containing no data.
+
        if atom.kind == Kind::Special && matches!(atom.nucleus, Some(Nucleus::Unit)) {
663
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            visitor.visit_unit()
-
    fn deserialize_unit_struct<V>(self, _name: &'static str, visitor: V) -> Result<V::Value>
+
        } else {
-
    where
+
            Err(Error::custom(format!("expected unit, got {:?}", atom.kind)))
-
        V: Visitor<'de>,
+
        }
-
    {
+
    }
-
        self.deserialize_unit(visitor)
+

             
-
    }
+
    // Unit struct means a named value containing no data.
670
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-

+            
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
    // As is done here, serializers are encouraged to treat newtype structs as
+
    fn deserialize_unit_struct<V>(self, _name: &'static str, visitor: V) -> Result<V::Value>
-
    // insignificant wrappers around the data they contain. That means not
+
    where
-
    // parsing anything other than the contained value.
+
        V: Visitor<'de>,
674
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white">
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
    {
-
    fn deserialize_newtype_struct<V>(self, _name: &'static str, visitor: V) -> Result<V::Value>
+
        self.deserialize_unit(visitor)
-
    where
+
    }
-
        V: Visitor<'de>,
+

             
-
    {
+
    // As is done here, serializers are encouraged to treat newtype structs as
-
        visitor.visit_newtype_struct(self)
+
    // insignificant wrappers around the data they contain. That means not
-
    }
+
    // parsing anything other than the contained value.
681
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-

+            
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
682
- 16 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
    fn deserialize_newtype_struct<V>(self, _name: &'static str, visitor: V) -> Result<V::Value>
-
    #[allow(clippy::cast_possible_truncation)]
+
    where
-
    fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value>
+
        V: Visitor<'de>,
-
    where
+
    {
-
        V: Visitor<'de>,
+
        visitor.visit_newtype_struct(self)
-
    {
+
    }
-
        let atom = self.read_atom()?;
+

             
689
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 16
-
-
        if atom.kind == Kind::Sequence {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
            visitor.visit_seq(AtomList::new(self, Some(atom.arg as usize)))
+
    #[allow(clippy::cast_possible_truncation)]
-
        } else if atom.kind == Kind::Special && matches!(atom.nucleus, Some(Nucleus::Unit) | None) {
+
    fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value>
-
            visitor.visit_seq(EmptyList)
+
    where
-
        } else {
+
        V: Visitor<'de>,
-
            Err(Error::custom(format!(
+
    {
-
                "expected sequence, got {:?}",
+
        let atom = self.read_atom()?;
-
                atom.kind
+
        if atom.kind == Kind::Sequence {
-
            )))
+
            visitor.visit_seq(AtomList::new(self, Some(atom.arg as usize)))
-
        }
+
        } else if atom.kind == Kind::Special && matches!(atom.nucleus, Some(Nucleus::Unit) | None) {
-
    }
+
            visitor.visit_seq(EmptyList)
-

+                
        } else {
701
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white">
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
            Err(Error::custom(format!(
-
    fn deserialize_tuple<V>(self, _len: usize, visitor: V) -> Result<V::Value>
+
                "expected sequence, got {:?}",
-
    where
+
                atom.kind
-
        V: Visitor<'de>,
+
            )))
-
    {
+
        }
-
        self.deserialize_seq(visitor)
+
    }
-
    }
+

             
708
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-

+            
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
709
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn deserialize_tuple_struct<V>(
+
+
    fn deserialize_tuple<V>(self, _len: usize, visitor: V) -> Result<V::Value>
710
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        self,
+
+
    where
711
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        _name: &'static str,
+
+
        V: Visitor<'de>,
712
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        _len: usize,
+
+
    {
713
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        visitor: V,
+
+
        self.deserialize_seq(visitor)
714
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    ) -> Result<V::Value>
+
+
    }
715
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    where
+
+

             
-
        V: Visitor<'de>,
+
    fn deserialize_tuple_struct<V>(
-
    {
+
        self,
-
        self.deserialize_seq(visitor)
+
        _name: &'static str,
-
    }
+
        _len: usize,
720
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-

+            
+
        visitor: V,
- 20029 + 2
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
    ) -> Result<V::Value>
722
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
    #[allow(clippy::cast_possible_truncation)]
+
+
    where
723
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
    fn deserialize_map<V>(self, visitor: V) -> Result<V::Value>
+
+
        V: Visitor<'de>,
724
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
    where
+
+
    {
725
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
        V: Visitor<'de>,
+
+
        self.deserialize_seq(visitor)
726
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
    {
+
+
    }
-
        let atom = self.read_atom()?;
+

             
728
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 20029
-
-
        match (atom.kind, atom.nucleus) {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
            (Kind::Map, _) => visitor.visit_map(AtomList::new(self, Some(atom.arg as usize))),
+
    #[allow(clippy::cast_possible_truncation)]
-
            (Kind::Special, Some(Nucleus::DynamicMap)) => {
+
    fn deserialize_map<V>(self, visitor: V) -> Result<V::Value>
-
                visitor.visit_map(AtomList::new(self, None))
+
    where
-
            }
+
        V: Visitor<'de>,
-
            (Kind::Special, Some(Nucleus::Unit) | None) => visitor.visit_map(EmptyList),
+
    {
-
            (kind, _) => Err(Error::custom(format!("expected map, got {kind:?}"))),
+
        let atom = self.read_atom()?;
-
        }
+
        match (atom.kind, atom.nucleus) {
-
    }
+
            (Kind::Map, _) => visitor.visit_map(AtomList::new(self, Some(atom.arg as usize))),
-

+                
            (Kind::Special, Some(Nucleus::DynamicMap)) => {
738
- 20025 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
                visitor.visit_map(AtomList::new(self, None))
-
    fn deserialize_struct<V>(
+
            }
-
        self,
+
            (Kind::Special, Some(Nucleus::Unit) | None) => visitor.visit_map(EmptyList),
-
        _name: &'static str,
+
            (kind, _) => Err(Error::custom(format!("expected map, got {kind:?}"))),
-
        _fields: &'static [&'static str],
+
        }
-
        visitor: V,
+
    }
-
    ) -> Result<V::Value>
+

             
745
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 20025
-
-
    where
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
        V: Visitor<'de>,
+
    fn deserialize_struct<V>(
-
    {
+
        self,
-
        self.deserialize_map(visitor)
+
        _name: &'static str,
-
    }
+
        _fields: &'static [&'static str],
-

+                
        visitor: V,
751
- 20020 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
    ) -> Result<V::Value>
-
    fn deserialize_enum<V>(
+
    where
-
        self,
+
        V: Visitor<'de>,
-
        _name: &'static str,
+
    {
-
        _variants: &'static [&'static str],
+
        self.deserialize_map(visitor)
-
        visitor: V,
+
    }
-
    ) -> Result<V::Value>
+

             
758
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 20020
-
-
    where
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
        V: Visitor<'de>,
+
    fn deserialize_enum<V>(
-
    {
+
        self,
-
        visitor.visit_enum(self)
+
        _name: &'static str,
-
    }
+
        _variants: &'static [&'static str],
-

+                
        visitor: V,
764
- 160228 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
+
+
    ) -> Result<V::Value>
-
    #[allow(clippy::cast_possible_truncation)]
+
    where
-
    fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value>
+
        V: Visitor<'de>,
-
    where
+
    {
-
        V: Visitor<'de>,
+
        visitor.visit_enum(self)
-
    {
+
    }
-
        let atom = self.read_atom()?;
+

             
771
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 160228
-
-
        match atom.kind {
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
            Kind::Symbol => self.visit_symbol(&atom, visitor),
+
    #[allow(clippy::cast_possible_truncation)]
-
            Kind::Bytes => {
+
    fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value>
-
                if let Some(Nucleus::Bytes(bytes)) = atom.nucleus {
+
    where
-
                    let as_str = std::str::from_utf8(&bytes)
+
        V: Visitor<'de>,
776
- 1 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
                        .map_err(|err| Error::InvalidUtf8(err.to_string()))?;
+
+
    {
-
                    visitor.visit_str(as_str)
+
        let atom = self.read_atom()?;
-
                } else {
+
        match atom.kind {
-
                    unreachable!("read_atom shouldn't return anything else")
+
            Kind::Symbol => self.visit_symbol(&atom, visitor),
-
                }
+
            Kind::Bytes => {
-
            }
+
                if let Some(Nucleus::Bytes(bytes)) = atom.nucleus {
-
            other => Err(Error::custom(format!("expected identifier, got {other:?}"))),
+
                    let as_str = std::str::from_utf8(&bytes)
783
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1
-
-
        }
+
+
                        .map_err(|err| Error::InvalidUtf8(err.to_string()))?;
-
    }
+
                    visitor.visit_str(as_str)
-

+                
                } else {
786
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white">
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-
+
+
                    unreachable!("read_atom shouldn't return anything else")
+
-
    fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value>
+
                }
-
    where
+
            }
-
        V: Visitor<'de>,
+
            other => Err(Error::custom(format!("expected identifier, got {other:?}"))),
-
    {
+
        }
-
        self.deserialize_any(visitor)
+
    }
-
    }
+

             
793
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
}
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(visitor)))]
-

+                
    fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value>
-
struct EmptyList;
+
    where
-

+                
        V: Visitor<'de>,
-
impl<'de> MapAccess<'de> for EmptyList {
+
    {
-
    type Error = Error;
+
        self.deserialize_any(visitor)
-

+                
    }
800
+
+ +
+
+
}
+
+
+
+ 801 +
+
+ +
+
+

+            
+
+
+ 802 +
+
+ +
+
+
struct EmptyList;
+
+
+
+ 803 +
+
+ +
+
+

+            
+
+
+ 804 +
+
+ +
+
+
impl<'de> MapAccess<'de> for EmptyList {
+
+
+
+ 805 +
+
+ +
+
+
    type Error = Error;
+
+
+
+ 806 +
+
+ +
+
+

+            
+
+
+ 807 +
1 @@ -10439,8 +10530,8 @@
- 801 + id="808"> + 808
@@ -10452,8 +10543,8 @@
- 802 + id="809"> + 809
@@ -10465,8 +10556,8 @@
- 803 + id="810"> + 810
@@ -10478,8 +10569,8 @@
- 804 + id="811"> + 811
@@ -10491,8 +10582,8 @@
- 805 + id="812"> + 812
@@ -10504,8 +10595,8 @@
- 806 + id="813"> + 813
@@ -10517,8 +10608,8 @@
- 807 + id="814"> + 814
@@ -10530,8 +10621,8 @@
- 808 + id="815"> + 815
@@ -10543,8 +10634,8 @@
- 809 + id="816"> + 816
@@ -10556,8 +10647,8 @@
- 810 + id="817"> + 817
@@ -10569,8 +10660,8 @@
- 811 + id="818"> + 818
@@ -10582,8 +10673,8 @@
- 812 + id="819"> + 819
@@ -10595,8 +10686,8 @@
- 813 + id="820"> + 820
@@ -10608,8 +10699,8 @@
- 814 + id="821"> + 821
@@ -10621,8 +10712,8 @@
- 815 + id="822"> + 822
@@ -10634,8 +10725,8 @@
- 816 + id="823"> + 823
@@ -10647,8 +10738,8 @@
- 817 + id="824"> + 824
@@ -10660,8 +10751,8 @@
- 818 + id="825"> + 825
@@ -10673,8 +10764,8 @@
- 819 + id="826"> + 826
@@ -10686,8 +10777,8 @@
- 820 + id="827"> + 827
@@ -10699,8 +10790,8 @@
- 821 + id="828"> + 828
@@ -10712,8 +10803,8 @@
- 822 + id="829"> + 829
@@ -10725,8 +10816,8 @@
- 823 + id="830"> + 830
@@ -10738,8 +10829,8 @@
- 824 + id="831"> + 831
@@ -10751,8 +10842,8 @@
- 825 + id="832"> + 832
@@ -10764,21 +10855,8 @@
- 826 -
-
- 363 -
-
-
#[derive_where(Debug)]
-
-
-
- 827 + id="833"> + 833
@@ -10790,8 +10868,8 @@
- 828 + id="834"> + 834
@@ -10803,8 +10881,8 @@
- 829 + id="835"> + 835
@@ -10816,8 +10894,8 @@
- 830 + id="836"> + 836
@@ -10829,8 +10907,8 @@
- 831 + id="837"> + 837
@@ -10842,8 +10920,8 @@
- 832 + id="838"> + 838
@@ -10855,8 +10933,8 @@
- 833 + id="839"> + 839
@@ -10868,8 +10946,8 @@
- 834 + id="840"> + 840
@@ -10881,8 +10959,8 @@
- 835 + id="841"> + 841
@@ -10894,8 +10972,8 @@
- 836 + id="842"> + 842
@@ -10907,8 +10985,8 @@
- 837 + id="843"> + 843
@@ -10920,8 +10998,8 @@
- 838 + id="844"> + 844
@@ -10933,8 +11011,8 @@
- 839 + id="845"> + 845
@@ -10946,8 +11024,8 @@
- 840 + id="846"> + 846
@@ -10959,8 +11037,8 @@
- 841 + id="847"> + 847
@@ -10972,8 +11050,8 @@
- 842 + id="848"> + 848
@@ -10985,8 +11063,8 @@
- 843 + id="849"> + 849
@@ -10998,8 +11076,8 @@
- 844 + id="850"> + 850
@@ -11011,8 +11089,8 @@
- 845 + id="851"> + 851
@@ -11024,8 +11102,8 @@
- 846 + id="852"> + 852
@@ -11037,8 +11115,8 @@
- 847 + id="853"> + 853
@@ -11050,8 +11128,8 @@
- 848 + id="854"> + 854
@@ -11063,8 +11141,8 @@
- 849 + id="855"> + 855
@@ -11076,8 +11154,8 @@
- 850 + id="856"> + 856
@@ -11089,8 +11167,8 @@
- 851 + id="857"> + 857
@@ -11102,8 +11180,8 @@
- 852 + id="858"> + 858
@@ -11115,8 +11193,8 @@
- 853 + id="859"> + 859
@@ -11128,8 +11206,8 @@
- 854 + id="860"> + 860
@@ -11141,8 +11219,8 @@
- 855 + id="861"> + 861
@@ -11154,8 +11232,8 @@
- 856 + id="862"> + 862
@@ -11167,8 +11245,8 @@
- 857 + id="863"> + 863
@@ -11180,8 +11258,8 @@
- 858 + id="864"> + 864
@@ -11193,8 +11271,8 @@
- 859 + id="865"> + 865
@@ -11206,8 +11284,8 @@
- 860 + id="866"> + 866
@@ -11219,51 +11297,194 @@
- 861 + id="867"> + 867 +
+
+ +
+
+
        }
+
+
+
+ 868 +
+
+ +
+
+

+            
+
+
+ 869 +
+
+ 80219 +
+
+
        Ok(false)
+
+
+
+ 870 +
+
+ 90256 +
+
+
    }
+
+
+
+ 871 +
+
+ +
+
+
}
+
+
+
+ 872 +
+
+ +
+
+

+            
+
+
+ 873 +
+
+ +
+
+
impl<'a, 's, 'de, R: Reader<'de>> Debug for AtomList<'a, 's, 'de, R> {
+
+
+
+ 874 +
+
+ 363 +
+
+
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+
+
+
+ 875 +
+
+ 363 +
+
+
        f.debug_struct("AtomList")
+
+
+
+ 876 +
+
+ 363 +
+
+
            .field("de", &self.de)
+
+
+
+ 877 +
+
+ 363 +
+
+
            .field("consumed", &self.consumed)
+
+
+
+ 878
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 363
-
-
        }
+
+
            .field("count", &self.count)
- 862 + id="879"> + 879
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 363
-
-

+            
+
            .field("eof", &self.eof)
- 863 + id="880"> + 880
- 80219 + 363
-
        Ok(false)
+
            .finish()
- 864 + id="881"> + 881
- 90256 + 363
    }
@@ -11271,8 +11492,8 @@
- 865 + id="882"> + 882
@@ -11284,8 +11505,8 @@
- 866 + id="883"> + 883
@@ -11297,8 +11518,8 @@
- 867 + id="884"> + 884
@@ -11310,8 +11531,8 @@
- 868 + id="885"> + 885
@@ -11323,8 +11544,8 @@
- 869 + id="886"> + 886
@@ -11336,8 +11557,8 @@
- 870 + id="887"> + 887
@@ -11349,8 +11570,8 @@
- 871 + id="888"> + 888
@@ -11362,8 +11583,8 @@
- 872 + id="889"> + 889
@@ -11375,8 +11596,8 @@
- 873 + id="890"> + 890
@@ -11388,8 +11609,8 @@
- 874 + id="891"> + 891
@@ -11401,8 +11622,8 @@
- 875 + id="892"> + 892
@@ -11414,8 +11635,8 @@
- 876 + id="893"> + 893
@@ -11427,8 +11648,8 @@
- 877 + id="894"> + 894
@@ -11440,8 +11661,8 @@
- 878 + id="895"> + 895
@@ -11453,8 +11674,8 @@
- 879 + id="896"> + 896
@@ -11466,8 +11687,8 @@
- 880 + id="897"> + 897
@@ -11479,8 +11700,8 @@
- 881 + id="898"> + 898
@@ -11492,8 +11713,8 @@
- 882 + id="899"> + 899
@@ -11505,8 +11726,8 @@
- 883 + id="900"> + 900
@@ -11518,8 +11739,8 @@
- 884 + id="901"> + 901
@@ -11531,8 +11752,8 @@
- 885 + id="902"> + 902
@@ -11544,8 +11765,8 @@
- 886 + id="903"> + 903
@@ -11557,8 +11778,8 @@
- 887 + id="904"> + 904
@@ -11570,8 +11791,8 @@
- 888 + id="905"> + 905
@@ -11583,8 +11804,8 @@
- 889 + id="906"> + 906
@@ -11596,8 +11817,8 @@
- 890 + id="907"> + 907
@@ -11609,8 +11830,8 @@
- 891 + id="908"> + 908
@@ -11622,8 +11843,8 @@
- 892 + id="909"> + 909
@@ -11635,8 +11856,8 @@
- 893 + id="910"> + 910
@@ -11648,8 +11869,8 @@
- 894 + id="911"> + 911
@@ -11661,8 +11882,8 @@
- 895 + id="912"> + 912
@@ -11674,8 +11895,8 @@
- 896 + id="913"> + 913
@@ -11687,8 +11908,8 @@
- 897 + id="914"> + 914
@@ -11700,8 +11921,8 @@
- 898 + id="915"> + 915
@@ -11713,8 +11934,8 @@
- 899 + id="916"> + 916
@@ -11726,8 +11947,8 @@
- 900 + id="917"> + 917
@@ -11739,8 +11960,8 @@
- 901 + id="918"> + 918
@@ -11752,8 +11973,8 @@
- 902 + id="919"> + 919
@@ -11765,8 +11986,8 @@
- 903 + id="920"> + 920
@@ -11778,8 +11999,8 @@
- 904 + id="921"> + 921
@@ -11791,8 +12012,8 @@
- 905 + id="922"> + 922
@@ -11804,8 +12025,8 @@
- 906 + id="923"> + 923
@@ -11817,8 +12038,8 @@
- 907 + id="924"> + 924
@@ -11830,8 +12051,8 @@
- 908 + id="925"> + 925
@@ -11843,8 +12064,8 @@
- 909 + id="926"> + 926
@@ -11856,8 +12077,8 @@
- 910 + id="927"> + 927
@@ -11869,8 +12090,8 @@
- 911 + id="928"> + 928
@@ -11882,8 +12103,8 @@
- 912 + id="929"> + 929
@@ -11895,8 +12116,8 @@
- 913 + id="930"> + 930
@@ -11908,8 +12129,8 @@
- 914 + id="931"> + 931
@@ -11921,8 +12142,8 @@
- 915 + id="932"> + 932
@@ -11934,8 +12155,8 @@
- 916 + id="933"> + 933
@@ -11947,8 +12168,8 @@
- 917 + id="934"> + 934
@@ -11960,8 +12181,8 @@
- 918 + id="935"> + 935
@@ -11973,8 +12194,8 @@
- 919 + id="936"> + 936
@@ -11986,8 +12207,8 @@
- 920 + id="937"> + 937
@@ -11999,8 +12220,8 @@
- 921 + id="938"> + 938
@@ -12012,8 +12233,8 @@
- 922 + id="939"> + 939
@@ -12025,8 +12246,8 @@
- 923 + id="940"> + 940
@@ -12038,8 +12259,8 @@
- 924 + id="941"> + 941
@@ -12051,8 +12272,8 @@
- 925 + id="942"> + 942
@@ -12064,8 +12285,8 @@
- 926 + id="943"> + 943
@@ -12077,8 +12298,8 @@
- 927 + id="944"> + 944
@@ -12090,8 +12311,8 @@
- 928 + id="945"> + 945
@@ -12103,8 +12324,8 @@
- 929 + id="946"> + 946
@@ -12116,8 +12337,8 @@
- 930 + id="947"> + 947
@@ -12129,8 +12350,8 @@
- 931 + id="948"> + 948
@@ -12142,8 +12363,8 @@
- 932 + id="949"> + 949
@@ -12155,8 +12376,8 @@
- 933 + id="950"> + 950
@@ -12168,8 +12389,8 @@
- 934 + id="951"> + 951
@@ -12181,8 +12402,8 @@
- 935 + id="952"> + 952
@@ -12194,8 +12415,8 @@
- 936 + id="953"> + 953
@@ -12207,8 +12428,8 @@
- 937 + id="954"> + 954
@@ -12220,8 +12441,8 @@
- 938 + id="955"> + 955
@@ -12233,8 +12454,8 @@
- 939 + id="956"> + 956
@@ -12246,8 +12467,8 @@
- 940 + id="957"> + 957
@@ -12259,8 +12480,8 @@
- 941 + id="958"> + 958
@@ -12272,8 +12493,8 @@
- 942 + id="959"> + 959
@@ -12285,8 +12506,8 @@
- 943 + id="960"> + 960
@@ -12298,8 +12519,8 @@
- 944 + id="961"> + 961
@@ -12311,8 +12532,8 @@
- 945 + id="962"> + 962
@@ -12324,8 +12545,8 @@
- 946 + id="963"> + 963
@@ -12337,8 +12558,8 @@
- 947 + id="964"> + 964
@@ -12350,8 +12571,8 @@
- 948 + id="965"> + 965
@@ -12363,8 +12584,8 @@
- 949 + id="966"> + 966
@@ -12376,8 +12597,8 @@
- 950 + id="967"> + 967
@@ -12389,8 +12610,8 @@
- 951 + id="968"> + 968
@@ -12402,8 +12623,8 @@
- 952 + id="969"> + 969
@@ -12415,8 +12636,8 @@
- 953 + id="970"> + 970
@@ -12428,8 +12649,8 @@
- 954 + id="971"> + 971
@@ -12441,8 +12662,8 @@
- 955 + id="972"> + 972
@@ -12454,8 +12675,8 @@
- 956 + id="973"> + 973
@@ -12467,8 +12688,8 @@
- 957 + id="974"> + 974
@@ -12480,8 +12701,8 @@
- 958 + id="975"> + 975
@@ -12493,8 +12714,8 @@
- 959 + id="976"> + 976
@@ -12506,8 +12727,8 @@
- 960 + id="977"> + 977
@@ -12519,8 +12740,8 @@
- 961 + id="978"> + 978
@@ -12532,8 +12753,8 @@
- 962 + id="979"> + 979
@@ -12545,8 +12766,8 @@
- 963 + id="980"> + 980
@@ -12558,8 +12779,8 @@
- 964 + id="981"> + 981
@@ -12571,8 +12792,8 @@
- 965 + id="982"> + 982
@@ -12584,8 +12805,8 @@
- 966 + id="983"> + 983
@@ -12597,8 +12818,8 @@
- 967 + id="984"> + 984
@@ -12610,8 +12831,8 @@
- 968 + id="985"> + 985
@@ -12623,8 +12844,8 @@
- 969 + id="986"> + 986
@@ -12636,8 +12857,8 @@
- 970 + id="987"> + 987
@@ -12649,8 +12870,8 @@
- 971 + id="988"> + 988
@@ -12662,8 +12883,8 @@
- 972 + id="989"> + 989
@@ -12675,8 +12896,8 @@
- 973 + id="990"> + 990
@@ -12688,8 +12909,8 @@
- 974 + id="991"> + 991
@@ -12701,12 +12922,12 @@
- 975 + id="992"> + 992
- 1110 + 1109
#[derive(Debug)]
@@ -12714,8 +12935,8 @@
- 976 + id="993"> + 993
@@ -12727,8 +12948,8 @@
- 977 + id="994"> + 994
@@ -12740,8 +12961,8 @@
- 978 + id="995"> + 995
@@ -12753,8 +12974,8 @@
- 979 + id="996"> + 996
@@ -12766,8 +12987,8 @@
- 980 + id="997"> + 997
@@ -12779,8 +13000,8 @@
- 981 + id="998"> + 998
@@ -12792,8 +13013,8 @@
- 982 + id="999"> + 999
@@ -12805,8 +13026,8 @@
- 983 + id="1000"> + 1000
@@ -12818,8 +13039,8 @@
- 984 + id="1001"> + 1001
@@ -12831,8 +13052,8 @@
- 985 + id="1002"> + 1002
@@ -12844,8 +13065,8 @@
- 986 + id="1003"> + 1003
@@ -12857,8 +13078,8 @@
- 987 + id="1004"> + 1004
@@ -12870,8 +13091,8 @@
- 988 + id="1005"> + 1005
@@ -12883,8 +13104,8 @@
- 989 + id="1006"> + 1006
@@ -12896,8 +13117,8 @@
- 990 + id="1007"> + 1007
@@ -12909,8 +13130,8 @@
- 991 + id="1008"> + 1008
@@ -12922,8 +13143,8 @@
- 992 + id="1009"> + 1009
@@ -12935,8 +13156,8 @@
- 993 + id="1010"> + 1010
@@ -12948,8 +13169,8 @@
- 994 + id="1011"> + 1011
@@ -12961,8 +13182,8 @@
- 995 + id="1012"> + 1012
@@ -12974,8 +13195,8 @@
- 996 + id="1013"> + 1013
@@ -12987,8 +13208,8 @@
- 997 + id="1014"> + 1014
@@ -13000,8 +13221,8 @@
- 998 + id="1015"> + 1015
@@ -13013,8 +13234,8 @@
- 999 + id="1016"> + 1016
@@ -13026,8 +13247,8 @@
- 1000 + id="1017"> + 1017
@@ -13039,8 +13260,8 @@
- 1001 + id="1018"> + 1018
@@ -13052,8 +13273,8 @@
- 1002 + id="1019"> + 1019
@@ -13065,8 +13286,8 @@
- 1003 + id="1020"> + 1020
@@ -13078,8 +13299,8 @@
- 1004 + id="1021"> + 1021
@@ -13091,8 +13312,8 @@
- 1005 + id="1022"> + 1022
@@ -13104,8 +13325,8 @@
- 1006 + id="1023"> + 1023
@@ -13117,8 +13338,8 @@
- 1007 + id="1024"> + 1024
@@ -13130,8 +13351,8 @@
- 1008 + id="1025"> + 1025
@@ -13143,8 +13364,8 @@
- 1009 + id="1026"> + 1026
@@ -13156,8 +13377,8 @@
- 1010 + id="1027"> + 1027
@@ -13169,8 +13390,8 @@
- 1011 + id="1028"> + 1028
@@ -13182,8 +13403,8 @@
- 1012 + id="1029"> + 1029
@@ -13195,8 +13416,8 @@
- 1013 + id="1030"> + 1030
@@ -13208,8 +13429,8 @@
- 1014 + id="1031"> + 1031
@@ -13221,8 +13442,8 @@
- 1015 + id="1032"> + 1032
@@ -13234,8 +13455,8 @@
- 1016 + id="1033"> + 1033
@@ -13247,8 +13468,8 @@
- 1017 + id="1034"> + 1034
@@ -13260,8 +13481,8 @@
- 1018 + id="1035"> + 1035
@@ -13273,8 +13494,8 @@
- 1019 + id="1036"> + 1036
@@ -13286,8 +13507,8 @@
- 1020 + id="1037"> + 1037
@@ -13299,8 +13520,8 @@
- 1021 + id="1038"> + 1038
@@ -13312,8 +13533,8 @@
- 1022 + id="1039"> + 1039
@@ -13325,8 +13546,8 @@
- 1023 + id="1040"> + 1040
@@ -13338,8 +13559,8 @@
- 1024 + id="1041"> + 1041
@@ -13351,8 +13572,8 @@
- 1025 + id="1042"> + 1042
@@ -13364,8 +13585,8 @@
- 1026 + id="1043"> + 1043
@@ -13377,8 +13598,8 @@
- 1027 + id="1044"> + 1044
@@ -13390,8 +13611,8 @@
- 1028 + id="1045"> + 1045
@@ -13403,8 +13624,8 @@
- 1029 + id="1046"> + 1046
@@ -13416,8 +13637,8 @@
- 1030 + id="1047"> + 1047
@@ -13429,8 +13650,8 @@
- 1031 + id="1048"> + 1048
@@ -13442,8 +13663,8 @@
- 1032 + id="1049"> + 1049
@@ -13455,8 +13676,8 @@
- 1033 + id="1050"> + 1050
@@ -13468,8 +13689,8 @@
- 1034 + id="1051"> + 1051
@@ -13481,8 +13702,8 @@
- 1035 + id="1052"> + 1052
@@ -13494,8 +13715,8 @@
- 1036 + id="1053"> + 1053
@@ -13507,8 +13728,8 @@
- 1037 + id="1054"> + 1054
@@ -13520,8 +13741,8 @@
- 1038 + id="1055"> + 1055
@@ -13533,8 +13754,8 @@
- 1039 + id="1056"> + 1056
@@ -13546,8 +13767,8 @@
- 1040 + id="1057"> + 1057
@@ -13559,8 +13780,8 @@
- 1041 + id="1058"> + 1058
@@ -13572,8 +13793,8 @@
- 1042 + id="1059"> + 1059
@@ -13585,8 +13806,8 @@
- 1043 + id="1060"> + 1060
@@ -13598,8 +13819,8 @@
- 1044 + id="1061"> + 1061
@@ -13611,8 +13832,8 @@
- 1045 + id="1062"> + 1062
@@ -13624,8 +13845,8 @@
- 1046 + id="1063"> + 1063
@@ -13637,8 +13858,8 @@
- 1047 + id="1064"> + 1064
@@ -13650,8 +13871,8 @@
- 1048 + id="1065"> + 1065
@@ -13663,8 +13884,8 @@
- 1049 + id="1066"> + 1066
@@ -13676,8 +13897,8 @@
- 1050 + id="1067"> + 1067
@@ -13689,8 +13910,8 @@
- 1051 + id="1068"> + 1068
@@ -13702,8 +13923,8 @@
- 1052 + id="1069"> + 1069
@@ -13715,8 +13936,8 @@
- 1053 + id="1070"> + 1070
@@ -13728,8 +13949,8 @@
- 1054 + id="1071"> + 1071
@@ -13741,8 +13962,8 @@
- 1055 + id="1072"> + 1072
@@ -13754,8 +13975,8 @@
- 1056 + id="1073"> + 1073
@@ -13767,7 +13988,7 @@
-

Date: 2023-07-28 13:45

+

Date: 2023-07-29 18:55

diff --git a/coverage/pot/src/error.rs.html b/coverage/pot/src/error.rs.html index 5980e6c6..9ab91a48 100644 --- a/coverage/pot/src/error.rs.html +++ b/coverage/pot/src/error.rs.html @@ -15,7 +15,7 @@

Lines

- 46.15 %

+ 16.67 %

@@ -23,7 +23,7 @@

Functions

- 11.54 %

+ 12.5 %

@@ -47,7 +47,7 @@
-
use std::fmt::Display;
+
use std::fmt::{Debug, Display};
-
use std::str::Utf8Error;
+
use std::io;
-
use std::string::FromUtf8Error;
+
use std::str::Utf8Error;
-

+                
use std::string::FromUtf8Error;
-
use serde::{de, ser};
+

             
-

+                
use serde::{de, ser};
-
use crate::format::Kind;
+

             
-

+                
use crate::format::Kind;
-
/// All errors that Pot may return.
+

             
10
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white">
-
-
#[derive(thiserror::Error, Debug)]
+
+
/// All errors that Pot may return.
11
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
pub enum Error {
+
+
#[derive(Debug)]
-
    /// Payload is not a Pot payload.
+
pub enum Error {
-
    #[error("not a pot: invalid header")]
+
    /// Payload is not a Pot payload.
-
    #[error("incompatible version")]
+
    IncompatibleVersion,
-
    IncompatibleVersion,
+
    /// A generic error occurred.
-
    /// A generic error occurred.
+
    Message(String),
-
    #[error("{0}")]
+
    /// Extra data appeared at the end of the input.
-
    Message(String),
+
    TrailingBytes,
-
    /// Extra data appeared at the end of the input.
+
    /// Expected more data but encountered the end of the input.
-
    #[error("extra data at end of input")]
+
    Eof,
-
    TrailingBytes,
+
    /// A numerical value could not be handled without losing precision or truncation.
-
    /// Expected more data but encountered the end of the input.
+
    ImpreciseCastWouldLoseData,
-
    #[error("unexpected end of file")]
+
    /// An IO error occurred.
-
    Eof,
+
    Io(io::Error),
-
    /// A numerical value could not be handled without losing precision or truncation.
+
    /// A sequence of unknown size cannot be serialized.
-
    #[error("numerical data cannot fit")]
+
    SequenceSizeMustBeKnown,
-
    ImpreciseCastWouldLoseData,
+
    /// String data contained invalid UTF-8 characters.
-
    /// An IO error occurred.
+
    InvalidUtf8(String),
-
    #[error("io error: {0}")]
+
    /// An unknown kind was encountered. Generally a sign that something else has been parsed incorrectly.
-
    Io(#[from] std::io::Error),
+
    InvalidKind(u8),
-
    /// A sequence of unknown size cannot be serialized.
+
    /// Encountered an unexpected atom kind.
-
    #[error("serializing sequences of unknown size is unsupported")]
+
    UnexpectedKind(Kind, Kind),
-
    SequenceSizeMustBeKnown,
+
    /// A requested symbol id was not found.
-
    /// String data contained invalid UTF-8 characters.
+
    UnknownSymbol(u64),
-
    #[error("invalid utf8: {0}")]
+
    /// An atom header was incorrectly formatted.
-
    InvalidUtf8(String),
+
    InvalidAtomHeader,
-
    /// An unknown kind was encountered. Generally a sign that something else has been parsed incorrectly.
+
    /// The amount of data read exceeds the configured maximum number of bytes.
-
    #[error("invalid kind: {0}")]
+
    TooManyBytesRead,
-
    InvalidKind(u8),
+
}
-
    /// Encountered an unexpected atom kind.
+

             
-
    #[error("encountered atom kind {0:?}, expected {1:?}")]
+
impl Display for Error {
44
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
    UnexpectedKind(Kind, Kind),
+
+
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
45
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
    /// A requested symbol id was not found.
+
+
        match self {
46
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
    #[error("unknown symbol {0}")]
+
+
            Error::NotAPot => f.write_str("not a pot: invalid header"),
47
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
    UnknownSymbol(u64),
+
+
            Error::IncompatibleVersion => f.write_str("incompatible version"),
48
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
    /// An atom header was incorrectly formatted.
+
+
            Error::Message(message) => f.write_str(message),
49
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
    #[error("an atom header was incorrectly formatted")]
+
+
            Error::TrailingBytes => f.write_str("extra data at end of input"),
50
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
    InvalidAtomHeader,
+
+
            Error::Eof => f.write_str("unexpected end of file"),
51
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
    /// The amount of data read exceeds the configured maximum number of bytes.
+
+
            Error::ImpreciseCastWouldLoseData => f.write_str("numerical data cannot fit"),
52
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
    #[error("the deserialized value is larger than the allowed allocation limit")]
+
+
            Error::Io(io) => write!(f, "io error: {io}"),
-
    TooManyBytesRead,
+
            Error::SequenceSizeMustBeKnown => {
54
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
}
+
+
                f.write_str("serializing sequences of unknown size is unsupported")
-

+                
            }
56
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
impl ser::Error for Error {
+
+
            Error::InvalidUtf8(err) => write!(f, "invalid utf8: {err}"),
-
    fn custom<T: Display>(msg: T) -> Self {
+
            Error::InvalidKind(kind) => write!(f, "invalid kind: {kind}"),
-
        Self::Message(msg.to_string())
+
            Error::UnexpectedKind(encountered, expected) => write!(
-
    }
+
                f,
60
+
+ +
+
+
                "encountered atom kind {encountered:?}, expected {expected:?}"
+
+
+
+ 61 +
+
+ +
+
+
            ),
+
+
+
+ 62 +
+
+ +
+
+
            Error::UnknownSymbol(sym) => write!(f, "unknown symbol {sym}"),
+
+
+
+ 63 +
+
+ +
+
+
            Error::InvalidAtomHeader => f.write_str("an atom header was incorrectly formatted"),
+
+
+
+ 64 +
+
+ +
+
+
            Error::TooManyBytesRead => {
+
+
+
+ 65 +
+
+ +
+
+
                f.write_str("the deserialized value is larger than the allowed allocation limit")
+
+
+
+ 66 +
+
+ +
+
+
            }
+
+
+
+ 67 +
+
+ +
+
+
        }
+
+
+
+ 68 +
+
+ +
+
+
    }
+
+
+
+ 69 +
@@ -819,8 +936,8 @@
- 61 + id="70"> + 70
@@ -832,8 +949,190 @@
- 62 + id="71"> + 71 +
+
+ +
+
+
impl std::error::Error for Error {}
+
+
+
+ 72 +
+
+ +
+
+

+            
+
+
+ 73 +
+
+ +
+
+
impl From<io::Error> for Error {
+
+
+
+ 74 +
+
+ +
+
+
    fn from(err: io::Error) -> Self {
+
+
+
+ 75 +
+
+ +
+
+
        Self::Io(err)
+
+
+
+ 76 +
+
+ +
+
+
    }
+
+
+
+ 77 +
+
+ +
+
+
}
+
+
+
+ 78 +
+
+ +
+
+

+            
+
+
+ 79 +
+
+ +
+
+
impl ser::Error for Error {
+
+
+
+ 80 +
+
+ +
+
+
    fn custom<T: Display>(msg: T) -> Self {
+
+
+
+ 81 +
+
+ +
+
+
        Self::Message(msg.to_string())
+
+
+
+ 82 +
+
+ +
+
+
    }
+
+
+
+ 83 +
+
+ +
+
+
}
+
+
+
+ 84 +
+
+ +
+
+

+            
+
+
+ 85
@@ -845,8 +1144,8 @@
- 63 + id="86"> + 86
@@ -858,8 +1157,8 @@
- 64 + id="87"> + 87
@@ -871,8 +1170,8 @@
- 65 + id="88"> + 88
@@ -884,8 +1183,8 @@
- 66 + id="89"> + 89
@@ -897,8 +1196,8 @@
- 67 + id="90"> + 90
@@ -910,8 +1209,8 @@
- 68 + id="91"> + 91
@@ -923,8 +1222,8 @@
- 69 + id="92"> + 92
@@ -936,8 +1235,8 @@
- 70 + id="93"> + 93
@@ -949,8 +1248,8 @@
- 71 + id="94"> + 94
@@ -962,8 +1261,8 @@
- 72 + id="95"> + 95
@@ -975,8 +1274,8 @@
- 73 + id="96"> + 96
@@ -988,8 +1287,8 @@
- 74 + id="97"> + 97
@@ -1001,8 +1300,8 @@
- 75 + id="98"> + 98
@@ -1014,8 +1313,8 @@
- 76 + id="99"> + 99
@@ -1027,8 +1326,8 @@
- 77 + id="100"> + 100
@@ -1040,8 +1339,8 @@
- 78 + id="101"> + 101
@@ -1053,7 +1352,7 @@
-

Date: 2023-07-28 13:45

+

Date: 2023-07-29 18:55

diff --git a/coverage/pot/src/format.rs.html b/coverage/pot/src/format.rs.html index 27bd27d2..9909b01a 100644 --- a/coverage/pot/src/format.rs.html +++ b/coverage/pot/src/format.rs.html @@ -408,7 +408,7 @@
- 2172715 + 2172879
        first_byte |= arg as u8 & 0b1111;
@@ -421,7 +421,7 @@
- 2172715 + 2172879
        arg >>= 4;
@@ -434,7 +434,7 @@
- 2172715 + 2172879
        // If the arg requires more than 4 bits, set the 5th bit.
@@ -447,7 +447,7 @@
- 2172715 + 2172879
        if arg > 0 {
@@ -460,7 +460,7 @@
- 583442 + 583741
            first_byte |= 0b10000;
@@ -473,7 +473,7 @@
- 1589273 + 1589138
        }
@@ -486,7 +486,7 @@
- 70865 + 70701
    }
@@ -525,7 +525,7 @@
- 2827034 + 2827333
    while arg > 0 {
@@ -538,7 +538,7 @@
- 583454 + 583753
        let mut byte = arg as u8 & 0x7F;
@@ -551,7 +551,7 @@
- 583454 + 583753
        arg >>= 7;
@@ -564,7 +564,7 @@
- 583454 + 583753
        if arg > 0 {
@@ -590,7 +590,7 @@
- 583442 + 583741
        }
@@ -603,7 +603,7 @@
- 583454 + 583753
        bytes[length] = byte;
@@ -616,7 +616,7 @@
- 583454 + 583753
        length += 1;
@@ -798,7 +798,7 @@
- 41952 + 42005
        let mut bytes_read = 1;
@@ -811,7 +811,7 @@
- 41952 + 42005
        let mut offset = 4;
@@ -837,7 +837,7 @@
- 41961 + 42014
            let byte = reader.read_u8()?;
@@ -850,7 +850,7 @@
- 41961 + 42014
            bytes_read += 1;
@@ -863,7 +863,7 @@
- 41961 + 42014
            arg |= u64::from(byte & 0x7f) << offset;
@@ -876,7 +876,7 @@
- 41961 + 42014
            offset += 7;
@@ -889,7 +889,7 @@
- 41961 + 42014
            if byte & 0b1000_0000 == 0 || bytes_read == 10 {
@@ -902,7 +902,7 @@
- 41952 + 42005
                break;
@@ -941,7 +941,7 @@
- 118696 + 118643
    }
@@ -1500,7 +1500,7 @@
- 15140 + 15108
            0 => Ok(Self::Special),
@@ -1591,7 +1591,7 @@
- 34979 + 35011
            7 => Ok(Self::Bytes),
@@ -1981,7 +1981,7 @@
- 45279 + 45183
    fn try_from(value: u64) -> Result<Self, Self::Error> {
@@ -1994,7 +1994,7 @@
- 45279 + 45183
        match value {
@@ -2007,7 +2007,7 @@
- 15222 + 15126
            0 => Ok(Self::None),
@@ -2124,7 +2124,7 @@
- 45279 + 45183
    }
@@ -2423,7 +2423,7 @@
- 210225 + 210069
pub fn write_special<W: WriteBytesExt>(writer: W, special: Special) -> std::io::Result<usize> {
@@ -2436,7 +2436,7 @@
- 210225 + 210069
    write_atom_header(writer, Kind::Special, Some(special as u64))
@@ -2449,7 +2449,7 @@
- 210225 + 210069
}
@@ -2488,7 +2488,7 @@
- 70188 + 70032
pub fn write_none<W: WriteBytesExt>(writer: W) -> std::io::Result<usize> {
@@ -2501,7 +2501,7 @@
- 70188 + 70032
    write_special(writer, Special::None)
@@ -2514,7 +2514,7 @@
- 70188 + 70032
}
@@ -3931,7 +3931,7 @@
- 633 + 625
pub fn write_u8<W: WriteBytesExt>(mut writer: W, value: u8) -> std::io::Result<usize> {
@@ -3944,7 +3944,7 @@
- 633 + 625
    let header_len = write_atom_header(
@@ -3957,7 +3957,7 @@
- 633 + 625
        &mut writer,
@@ -3970,7 +3970,7 @@
- 633 + 625
        Kind::UInt,
@@ -3983,7 +3983,7 @@
- 633 + 625
        Some(std::mem::size_of::<u8>() as u64 - 1),
@@ -3996,7 +3996,7 @@
- 633 + 625
    )?;
@@ -4009,7 +4009,7 @@
- 633 + 625
    writer
@@ -4022,7 +4022,7 @@
- 633 + 625
        .write_u8(value)
@@ -4035,7 +4035,7 @@
- 633 + 625
        .map(|_| std::mem::size_of::<u8>() + header_len)
@@ -4048,7 +4048,7 @@
- 633 + 625
}
@@ -4113,7 +4113,7 @@
- 609 + 601
        write_u8(writer, value)
@@ -4139,7 +4139,7 @@
- 139456 + 139464
        let header_len = write_atom_header(
@@ -4152,7 +4152,7 @@
- 139456 + 139464
            &mut writer,
@@ -4165,7 +4165,7 @@
- 139456 + 139464
            Kind::UInt,
@@ -4178,7 +4178,7 @@
- 139456 + 139464
            Some(std::mem::size_of::<u16>() as u64 - 1),
@@ -4191,7 +4191,7 @@
- 139456 + 139464
        )?;
@@ -4204,7 +4204,7 @@
- 139456 + 139464
        writer
@@ -4217,7 +4217,7 @@
- 139456 + 139464
            .write_u16::<LittleEndian>(value)
@@ -4230,7 +4230,7 @@
- 139456 + 139464
            .map(|_| std::mem::size_of::<u16>() + header_len)
@@ -4620,7 +4620,7 @@
- 51 + 54
    if let Ok(value) = u32::try_from(value) {
@@ -4659,7 +4659,7 @@
- 6 + 9
        let header_len = write_atom_header(&mut writer, Kind::UInt, Some(6 - 1))?;
@@ -4672,7 +4672,7 @@
- 6 + 9
        writer
@@ -4685,7 +4685,7 @@
- 6 + 9
            .write_u48::<LittleEndian>(value)
@@ -4698,7 +4698,7 @@
- 6 + 9
            .map(|_| 6 + header_len)
@@ -4724,7 +4724,7 @@
- 51 + 54
}
@@ -4789,7 +4789,7 @@
- 51 + 54
        write_u48(writer, value)
@@ -4815,7 +4815,7 @@
- 140012 + 140009
        let header_len = write_atom_header(&mut writer, Kind::UInt, Some(8 - 1))?;
@@ -4828,7 +4828,7 @@
- 140012 + 140009
        writer
@@ -4841,7 +4841,7 @@
- 140012 + 140009
            .write_u64::<LittleEndian>(value)
@@ -4854,7 +4854,7 @@
- 140012 + 140009
            .map(|_| std::mem::size_of::<u64>() + header_len)
@@ -5699,7 +5699,7 @@
- 489845 + 490001
pub fn write_str<W: WriteBytesExt>(writer: W, value: &str) -> std::io::Result<usize> {
@@ -5712,7 +5712,7 @@
- 489845 + 490001
    write_bytes(writer, value.as_bytes())
@@ -5725,7 +5725,7 @@
- 489845 + 490001
}
@@ -5764,7 +5764,7 @@
- 489856 + 490012
pub fn write_bytes<W: WriteBytesExt>(mut writer: W, value: &[u8]) -> std::io::Result<usize> {
@@ -5777,7 +5777,7 @@
- 489856 + 490012
    let header_len = write_atom_header(&mut writer, Kind::Bytes, Some(value.len() as u64))?;
@@ -5790,7 +5790,7 @@
- 489856 + 490012
    writer.write_all(value)?;
@@ -5803,7 +5803,7 @@
- 489856 + 490012
    Ok(value.len() + header_len)
@@ -5816,7 +5816,7 @@
- 489856 + 490012
}
@@ -12199,7 +12199,7 @@
- 15139 + 15107
            kind,
@@ -12212,7 +12212,7 @@
- 15139 + 15107
            arg,
@@ -12225,7 +12225,7 @@
- 15139 + 15107
            nucleus: match Special::try_from(arg)? {
@@ -12238,7 +12238,7 @@
- 5088 + 5056
                Special::None => None,
@@ -12602,7 +12602,7 @@
- 34978 + 35010
            let bytes = arg as usize;
@@ -12615,7 +12615,7 @@
- 34978 + 35010
            update_budget(remaining_budget, bytes)?;
@@ -12628,7 +12628,7 @@
- 34976 + 35008
            let bytes = reader.buffered_read_bytes(bytes)?;
@@ -12641,7 +12641,7 @@
- 34975 + 35007
            Atom {
@@ -12654,7 +12654,7 @@
- 34975 + 35007
                kind,
@@ -12667,7 +12667,7 @@
- 34975 + 35007
                arg,
@@ -12680,7 +12680,7 @@
- 34975 + 35007
                nucleus: Some(Nucleus::Bytes(bytes)),
@@ -12693,7 +12693,7 @@
- 34975 + 35007
            }
@@ -12888,7 +12888,7 @@
- 165165 + 165261
    if let Some(remaining) = budget.checked_sub(read_amount) {
@@ -12901,7 +12901,7 @@
- 165162 + 165258
        *budget = remaining;
@@ -12914,7 +12914,7 @@
- 165162 + 165258
        Ok(())
@@ -12966,7 +12966,7 @@
- 165165 + 165261
}
@@ -22204,7 +22204,7 @@
-

Date: 2023-07-28 13:45

+

Date: 2023-07-29 18:55

diff --git a/coverage/pot/src/index.html b/coverage/pot/src/index.html index c9ebbd13..12e06322 100644 --- a/coverage/pot/src/index.html +++ b/coverage/pot/src/index.html @@ -15,7 +15,7 @@

Lines

- 81.68 %

+ 81.08 %

@@ -23,7 +23,7 @@

Functions

- 58.01 %

+ 58.45 %

@@ -52,16 +52,16 @@ - 87.5% + 88.21% - 87.5% + 88.21% - 189 / 216 + 202 / 229 57.98% @@ -76,20 +76,20 @@ - 46.15% + 16.67% - 46.15% + 16.67% - 6 / 13 + 6 / 36 - 11.54% - 3 / 26 + 12.5% + 3 / 24 100 0 / 0 @@ -136,8 +136,8 @@ 545 / 547 - 79.95% - 355 / 444 + 81.76% + 363 / 444 100 0 / 0 @@ -171,17 +171,17 @@ - 89.73% + 90% - - 89.73% + + 90% - - 166 / 185 + + 171 / 190 66.2% @@ -196,16 +196,16 @@ - 54.6% + 54.36% - 54.6% + 54.36% - 611 / 1119 + 611 / 1124 34.47% @@ -218,7 +218,7 @@
-

Date: 2023-07-28 13:45

+

Date: 2023-07-29 18:55

diff --git a/coverage/pot/src/lib.rs.html b/coverage/pot/src/lib.rs.html index 4273a675..faecea5c 100644 --- a/coverage/pot/src/lib.rs.html +++ b/coverage/pot/src/lib.rs.html @@ -23,7 +23,7 @@

Functions

- 79.95 %

+ 81.76 %

@@ -3112,7 +3112,7 @@
- 297 + 298
    #[derive(Serialize, PartialEq, Deserialize, Debug, Default)]
@@ -3333,7 +3333,7 @@
- 53 + 54
    #[derive(Serialize, PartialEq, Deserialize, Debug)]
@@ -4815,7 +4815,7 @@
- 48 + 49
    #[derive(Serialize, PartialEq, Deserialize, Debug, Default)]
@@ -9365,7 +9365,7 @@
- 6 + 2
    #[derive(Serialize, Deserialize, Debug, PartialEq)]
@@ -10348,7 +10348,7 @@
-

Date: 2023-07-28 13:45

+

Date: 2023-07-29 18:55

diff --git a/coverage/pot/src/reader.rs.html b/coverage/pot/src/reader.rs.html index 861c5f92..a4f268a8 100644 --- a/coverage/pot/src/reader.rs.html +++ b/coverage/pot/src/reader.rs.html @@ -798,7 +798,7 @@
- 105055 + 105151
    fn buffered_read_bytes(&mut self, length: usize) -> Result<Cow<'de, [u8]>, Error> {
@@ -811,7 +811,7 @@
- 105055 + 105151
        if length > self.data.len() {
@@ -863,7 +863,7 @@
- 105054 + 105150
            let (start, remaining) = self.data.split_at(length);
@@ -876,7 +876,7 @@
- 105054 + 105150
            self.data = remaining;
@@ -889,7 +889,7 @@
- 105054 + 105150
            Ok(Cow::Borrowed(start))
@@ -915,7 +915,7 @@
- 105055 + 105151
    }
@@ -967,7 +967,7 @@
- 666692 + 666851
    fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
@@ -980,7 +980,7 @@
- 666692 + 666851
        let remaining_length = self.data.len();
@@ -993,7 +993,7 @@
- 666692 + 666851
        let (to_copy, remaining) = self.data.split_at(remaining_length.min(buf.len()));
@@ -1006,7 +1006,7 @@
- 666692 + 666851
        buf[..to_copy.len()].copy_from_slice(to_copy);
@@ -1019,7 +1019,7 @@
- 666692 + 666851
        self.data = remaining;
@@ -1032,7 +1032,7 @@
- 666692 + 666851
        Ok(to_copy.len())
@@ -1045,7 +1045,7 @@
- 666692 + 666851
    }
@@ -1071,7 +1071,7 @@
- 666692 + 666851
    fn read_exact(&mut self, buf: &mut [u8]) -> std::io::Result<()> {
@@ -1084,7 +1084,7 @@
- 666692 + 666851
        self.read(buf).map(|_| ())
@@ -1097,7 +1097,7 @@
- 666692 + 666851
    }
@@ -1807,7 +1807,7 @@
-

Date: 2023-07-28 13:45

+

Date: 2023-07-29 18:55

diff --git a/coverage/pot/src/ser.rs.html b/coverage/pot/src/ser.rs.html index 7ac714d6..9329a8ca 100644 --- a/coverage/pot/src/ser.rs.html +++ b/coverage/pot/src/ser.rs.html @@ -14,8 +14,8 @@

Lines

-

- 89.73 %

+

+ 90 %

@@ -112,7 +112,7 @@
-
use derive_where::derive_where;
+
use serde::{ser, Serialize};
-
use serde::{ser, Serialize};
+
#[cfg(feature = "tracing")]
-
#[cfg(feature = "tracing")]
+
use tracing::instrument;
-
use tracing::instrument;
+

             
-

+                
use crate::format::{self, Kind, Special, CURRENT_VERSION};
-
use crate::format::{self, Kind, Special, CURRENT_VERSION};
+
use crate::{Error, Result};
-
use crate::{Error, Result};
+

             
-

+                
/// A Pot serializer.
-
/// A Pot serializer.
+
pub struct Serializer<'a, W: WriteBytesExt> {
15
- 486 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
#[derive_where(Debug)]
+
+
    symbol_map: SymbolMapRef<'a>,
-
pub struct Serializer<'a, W: WriteBytesExt> {
+
    output: W,
-
    symbol_map: SymbolMapRef<'a>,
+
    bytes_written: usize,
-
    #[derive_where(skip)]
+
}
-
    output: W,
+

             
-
    bytes_written: usize,
+
impl<'a, W: WriteBytesExt> Debug for Serializer<'a, W> {
21
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 485
-
-
}
+
+
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
22
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 485
-
-

+            
+
        f.debug_struct("Serializer")
23
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 485
-
-
impl<'a, W: WriteBytesExt> Serializer<'a, W> {
+
+
            .field("symbol_map", &self.symbol_map)
24
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 485
-
-
    /// Returns a new serializer outputting written bytes into `output`.
+
+
            .field("bytes_written", &self.bytes_written)
- 1161 + 485
-
    pub fn new(output: W) -> Result<Self> {
+
            .finish()
- 1161 + 485
-
        Self::new_with_symbol_map(output, SymbolMapRef::Owned(SymbolMap::default()))
+
    }
27
- 1161 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    }
+
+
}
29
- 1163 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn new_with_symbol_map(mut output: W, symbol_map: SymbolMapRef<'a>) -> Result<Self> {
+
+
impl<'a, W: WriteBytesExt> Serializer<'a, W> {
30
- 1163 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        let bytes_written = format::write_header(&mut output, CURRENT_VERSION)?;
+
+
    /// Returns a new serializer outputting written bytes into `output`.
- 1163 + 1161
-
        Ok(Self {
+
    pub fn new(output: W) -> Result<Self> {
- 1163 + 1161
-
            symbol_map,
+
        Self::new_with_symbol_map(output, SymbolMapRef::Owned(SymbolMap::default()))
- 1163 + 1161
-
            output,
+
    }
34
- 1163 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
            bytes_written,
+
+

             
-
        })
+
    fn new_with_symbol_map(mut output: W, symbol_map: SymbolMapRef<'a>) -> Result<Self> {
-
    }
+
        let bytes_written = format::write_header(&mut output, CURRENT_VERSION)?;
37
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1163
-
-

+            
+
        Ok(Self {
- 2242209 + 1163
-
    #[cfg_attr(feature = "tracing", instrument)]
+
            symbol_map,
- 1121173 + 1163
-
    fn write_symbol(&mut self, symbol: &'static str) -> Result<()> {
+
            output,
40
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1163
-
-
        let registered_symbol = self.symbol_map.find_or_add(symbol);
+
+
            bytes_written,
41
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1163
-
-
        if registered_symbol.new {
+
+
        })
42
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1163
-
-
            // The arg is the length followed by a 0 bit.
+
+
    }
-
            let arg = (symbol.len() as u64) << 1;
+

             
44
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2242209
-
-
            self.bytes_written +=
+
+
    #[cfg_attr(feature = "tracing", instrument)]
45
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1121173
-
-
                format::write_atom_header(&mut self.output, Kind::Symbol, Some(arg))?;
+
+
    fn write_symbol(&mut self, symbol: &'static str) -> Result<()> {
-
            self.output.write_all(symbol.as_bytes())?;
+
        let registered_symbol = self.symbol_map.find_or_add(symbol);
-
            self.bytes_written += symbol.len();
+
        if registered_symbol.new {
-
        } else {
+
            // The arg is the length followed by a 0 bit.
-
            // When a symbol was already emitted, just emit the id followed by a 1 bit.
+
            let arg = (symbol.len() as u64) << 1;
-
            self.bytes_written += format::write_atom_header(
+
            self.bytes_written +=
-
                &mut self.output,
+
                format::write_atom_header(&mut self.output, Kind::Symbol, Some(arg))?;
-
                Kind::Symbol,
+
            self.output.write_all(symbol.as_bytes())?;
-
                Some(u64::from((registered_symbol.id << 1) | 1)),
+
            self.bytes_written += symbol.len();
-
            )?;
+
        } else {
-
        }
+
            // When a symbol was already emitted, just emit the id followed by a 1 bit.
-
        Ok(())
+
            self.bytes_written += format::write_atom_header(
-
    }
+
                &mut self.output,
-
}
+
                Kind::Symbol,
-

+                
                Some(u64::from((registered_symbol.id << 1) | 1)),
-
impl<'de, 'a: 'de, W: WriteBytesExt + 'a> ser::Serializer for &'de mut Serializer<'a, W> {
+
            )?;
-
    type Error = Error;
+
        }
-
    type Ok = ();
+
        Ok(())
-
    type SerializeMap = MapSerializer<'de, 'a, W>;
+
    }
-
    type SerializeSeq = Self;
+
}
-
    type SerializeStruct = MapSerializer<'de, 'a, W>;
+

             
-
    type SerializeStructVariant = MapSerializer<'de, 'a, W>;
+
impl<'de, 'a: 'de, W: WriteBytesExt + 'a> ser::Serializer for &'de mut Serializer<'a, W> {
-
    type SerializeTuple = Self;
+
    type Error = Error;
-
    type SerializeTupleStruct = Self;
+
    type Ok = ();
-
    type SerializeTupleVariant = Self;
+
    type SerializeMap = MapSerializer<'de, 'a, W>;
-

+                
    type SerializeSeq = Self;
71
- 1 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn is_human_readable(&self) -> bool {
+
+
    type SerializeStruct = MapSerializer<'de, 'a, W>;
72
- 1 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
        false
+
+
    type SerializeStructVariant = MapSerializer<'de, 'a, W>;
73
- 1 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    }
+
+
    type SerializeTuple = Self;
-

+                
    type SerializeTupleStruct = Self;
75
- 7 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument)]
+
+
    type SerializeTupleVariant = Self;
76
- 7 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn serialize_bool(self, v: bool) -> Result<()> {
+
+

             
77
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1
-
-
        self.bytes_written += format::write_bool(&mut self.output, v)?;
+
+
    fn is_human_readable(&self) -> bool {
78
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1
-
-
        Ok(())
+
+
        false
79
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1
-
-
    }
+
+
    }
- 10 + 7
    #[cfg_attr(feature = "tracing", instrument)]
@@ -1097,10 +1097,10 @@
- 10 + 7
-
    fn serialize_i8(self, v: i8) -> Result<()> {
+
    fn serialize_bool(self, v: bool) -> Result<()> {
-
        self.bytes_written += format::write_i8(&mut self.output, v)?;
+
        self.bytes_written += format::write_bool(&mut self.output, v)?;
-
    fn serialize_i16(self, v: i16) -> Result<()> {
+
    fn serialize_i8(self, v: i8) -> Result<()> {
-
        self.bytes_written += format::write_i16(&mut self.output, v)?;
+
        self.bytes_written += format::write_i8(&mut self.output, v)?;
-
    fn serialize_i32(self, v: i32) -> Result<()> {
+
    fn serialize_i16(self, v: i16) -> Result<()> {
-
        self.bytes_written += format::write_i32(&mut self.output, v)?;
+
        self.bytes_written += format::write_i16(&mut self.output, v)?;
-
    fn serialize_i64(self, v: i64) -> Result<()> {
+
    fn serialize_i32(self, v: i32) -> Result<()> {
-
        self.bytes_written += format::write_i64(&mut self.output, v)?;
+
        self.bytes_written += format::write_i32(&mut self.output, v)?;
- 56 + 10
    #[cfg_attr(feature = "tracing", instrument)]
@@ -1409,10 +1409,10 @@
- 56 + 10
-
    fn serialize_i128(self, v: i128) -> Result<()> {
+
    fn serialize_i64(self, v: i64) -> Result<()> {
-
        self.bytes_written += format::write_i128(&mut self.output, v)?;
+
        self.bytes_written += format::write_i64(&mut self.output, v)?;
- 27 + 56
    #[cfg_attr(feature = "tracing", instrument)]
@@ -1487,10 +1487,10 @@
- 22 + 56
-
    fn serialize_u8(self, v: u8) -> Result<()> {
+
    fn serialize_i128(self, v: i128) -> Result<()> {
-
        self.bytes_written += format::write_u8(&mut self.output, v)?;
+
        self.bytes_written += format::write_i128(&mut self.output, v)?;
- 280016 + 27
    #[cfg_attr(feature = "tracing", instrument)]
@@ -1565,10 +1565,10 @@
- 140013 + 22
-
    fn serialize_u16(self, v: u16) -> Result<()> {
+
    fn serialize_u8(self, v: u8) -> Result<()> {
-
        self.bytes_written += format::write_u16(&mut self.output, v)?;
+
        self.bytes_written += format::write_u8(&mut self.output, v)?;
- 13 + 280016
    #[cfg_attr(feature = "tracing", instrument)]
@@ -1643,10 +1643,10 @@
- 13 + 140013
-
    fn serialize_u32(self, v: u32) -> Result<()> {
+
    fn serialize_u16(self, v: u16) -> Result<()> {
-
        self.bytes_written += format::write_u32(&mut self.output, v)?;
+
        self.bytes_written += format::write_u16(&mut self.output, v)?;
- 280036 + 14
    #[cfg_attr(feature = "tracing", instrument)]
@@ -1721,10 +1721,10 @@
- 140032 + 13
-
    fn serialize_u64(self, v: u64) -> Result<()> {
+
    fn serialize_u32(self, v: u32) -> Result<()> {
-
        self.bytes_written += format::write_u64(&mut self.output, v)?;
+
        self.bytes_written += format::write_u32(&mut self.output, v)?;
- 36 + 280036
    #[cfg_attr(feature = "tracing", instrument)]
@@ -1799,10 +1799,10 @@
- 36 + 140032
-
    fn serialize_u128(self, v: u128) -> Result<()> {
+
    fn serialize_u64(self, v: u64) -> Result<()> {
-
        self.bytes_written += format::write_u128(&mut self.output, v)?;
+
        self.bytes_written += format::write_u64(&mut self.output, v)?;
- 12 + 36
    #[cfg_attr(feature = "tracing", instrument)]
@@ -1877,10 +1877,10 @@
- 12 + 36
-
    fn serialize_f32(self, v: f32) -> Result<()> {
+
    fn serialize_u128(self, v: u128) -> Result<()> {
-
        self.bytes_written += format::write_f32(&mut self.output, v)?;
+
        self.bytes_written += format::write_u128(&mut self.output, v)?;
- 22 + 12
    #[cfg_attr(feature = "tracing", instrument)]
@@ -1955,10 +1955,10 @@
- 22 + 12
-
    fn serialize_f64(self, v: f64) -> Result<()> {
+
    fn serialize_f32(self, v: f32) -> Result<()> {
-
        self.bytes_written += format::write_f64(&mut self.output, v)?;
+
        self.bytes_written += format::write_f32(&mut self.output, v)?;
- 9 + 22
    #[cfg_attr(feature = "tracing", instrument)]
@@ -2033,10 +2033,10 @@
- 9 + 22
-
    fn serialize_char(self, v: char) -> Result<()> {
+
    fn serialize_f64(self, v: f64) -> Result<()> {
-
        self.bytes_written += format::write_u32(&mut self.output, v as u32)?;
+
        self.bytes_written += format::write_f64(&mut self.output, v)?;
- 979678 + 9
    #[cfg_attr(feature = "tracing", instrument)]
@@ -2111,10 +2111,10 @@
- 489845 + 9
-
    fn serialize_str(self, v: &str) -> Result<()> {
+
    fn serialize_char(self, v: char) -> Result<()> {
-
        self.bytes_written += format::write_str(&mut self.output, v)?;
+
        self.bytes_written += format::write_u32(&mut self.output, v as u32)?;
- 11 + 979990
    #[cfg_attr(feature = "tracing", instrument)]
@@ -2189,10 +2189,10 @@
- 8 + 490001
-
    fn serialize_bytes(self, v: &[u8]) -> Result<()> {
+
    fn serialize_str(self, v: &str) -> Result<()> {
-
        self.bytes_written += format::write_bytes(&mut self.output, v)?;
+
        self.bytes_written += format::write_str(&mut self.output, v)?;
- 140370 + 11
    #[cfg_attr(feature = "tracing", instrument)]
@@ -2267,10 +2267,10 @@
- 70188 + 8
-
    fn serialize_none(self) -> Result<()> {
+
    fn serialize_bytes(self, v: &[u8]) -> Result<()> {
-
        self.bytes_written += format::write_none(&mut self.output)?;
+
        self.bytes_written += format::write_bytes(&mut self.output, v)?;
- 139648 + 140058
-
    #[cfg_attr(feature = "tracing", instrument(skip(value)))]
+
    #[cfg_attr(feature = "tracing", instrument)]
178
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 70032
-
-
    fn serialize_some<T>(self, value: &T) -> Result<()>
+
+
    fn serialize_none(self) -> Result<()> {
-
    where
+
        self.bytes_written += format::write_none(&mut self.output)?;
-
        T: ?Sized + Serialize,
+
        Ok(())
-
    {
+
    }
-
        value.serialize(self)
+

             
183
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 139960
-
-
    }
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(value)))]
-

+                
    fn serialize_some<T>(self, value: &T) -> Result<()>
185
- 11 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument)]
+
+
    where
186
- 11 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn serialize_unit(self) -> Result<()> {
+
+
        T: ?Sized + Serialize,
-
        self.bytes_written += format::write_unit(&mut self.output)?;
+
    {
-
        Ok(())
+
        value.serialize(self)
- 2 + 11
    #[cfg_attr(feature = "tracing", instrument)]
@@ -2527,10 +2527,10 @@
- 2 + 11
-
    fn serialize_unit_struct(self, _name: &'static str) -> Result<()> {
+
    fn serialize_unit(self) -> Result<()> {
-
        self.serialize_unit()
+
        self.bytes_written += format::write_unit(&mut self.output)?;
-
    }
+
        Ok(())
-

+                
    }
196
- 280010 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument)]
+
+

             
- 140007 + 2
-
    fn serialize_unit_variant(
+
    #[cfg_attr(feature = "tracing", instrument)]
198
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
        self,
+
+
    fn serialize_unit_struct(self, _name: &'static str) -> Result<()> {
-
        _name: &'static str,
+
        self.serialize_unit()
-
        _variant_index: u32,
+
    }
-
        variant: &'static str,
+

             
202
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 280010
-
-
    ) -> Result<()> {
+
+
    #[cfg_attr(feature = "tracing", instrument)]
203
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 140007
-
-
        format::write_named(&mut self.output)?;
+
+
    fn serialize_unit_variant(
-
        self.write_symbol(variant)?;
+
        self,
-
        Ok(())
+
        _name: &'static str,
-
    }
+
        _variant_index: u32,
-

+                
        variant: &'static str,
208
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white">
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(value)))]
+
+
    ) -> Result<()> {
-
    fn serialize_newtype_struct<T>(self, _name: &'static str, value: &T) -> Result<()>
+
        format::write_named(&mut self.output)?;
-
    where
+
        self.write_symbol(variant)?;
-
        T: ?Sized + Serialize,
+
        Ok(())
-
    {
+
    }
-
        value.serialize(self)
+

             
214
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
    }
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(value)))]
-

+                
    fn serialize_newtype_struct<T>(self, _name: &'static str, value: &T) -> Result<()>
216
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument(skip(value)))]
+
+
    where
-
    fn serialize_newtype_variant<T>(
+
        T: ?Sized + Serialize,
-
        self,
+
    {
-
        _name: &'static str,
+
        value.serialize(self)
-
        _variant_index: u32,
+
    }
-
        variant: &'static str,
+

             
222
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
        value: &T,
+
+
    #[cfg_attr(feature = "tracing", instrument(skip(value)))]
-
    ) -> Result<()>
+
    fn serialize_newtype_variant<T>(
-
    where
+
        self,
-
        T: ?Sized + Serialize,
+
        _name: &'static str,
-
    {
+
        _variant_index: u32,
-
        format::write_named(&mut self.output)?;
+
        variant: &'static str,
-
        self.write_symbol(variant)?;
+
        value: &T,
-
        value.serialize(&mut *self)?;
+
    ) -> Result<()>
-
        Ok(())
+
    where
-
    }
+
        T: ?Sized + Serialize,
-

+                
    {
233
- 2022 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument)]
+
+
        format::write_named(&mut self.output)?;
234
- 1017 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn serialize_seq(self, len: Option<usize>) -> Result<Self::SerializeSeq> {
+
+
        self.write_symbol(variant)?;
-
        let len = len.ok_or(Error::SequenceSizeMustBeKnown)?;
+
        value.serialize(&mut *self)?;
-
        self.bytes_written +=
+
        Ok(())
-
            format::write_atom_header(&mut self.output, Kind::Sequence, Some(len as u64))?;
+
    }
-
        Ok(self)
+

             
239
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2022
-
-
    }
+
+
    #[cfg_attr(feature = "tracing", instrument)]
240
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 1017
-
-

+            
+
    fn serialize_seq(self, len: Option<usize>) -> Result<Self::SerializeSeq> {
241
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white">
-
-
    #[cfg_attr(feature = "tracing", instrument)]
+
+
        let len = len.ok_or(Error::SequenceSizeMustBeKnown)?;
242
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white">
-
-
    fn serialize_tuple(self, len: usize) -> Result<Self::SerializeTuple> {
+
+
        self.bytes_written +=
-
        self.serialize_seq(Some(len))
+
            format::write_atom_header(&mut self.output, Kind::Sequence, Some(len as u64))?;
-
    }
+
        Ok(self)
-

+                
    }
246
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument)]
+
+

             
247
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger"> +
-
-
    fn serialize_tuple_struct(
+
+
    #[cfg_attr(feature = "tracing", instrument)]
248
+ class="column is-1 is-narrow p-0 has-text-centered has-text-danger-light has-background-danger">
-
-
        self,
+
+
    fn serialize_tuple(self, len: usize) -> Result<Self::SerializeTuple> {
-
        _name: &'static str,
+
        self.serialize_seq(Some(len))
-
        len: usize,
+
    }
-
    ) -> Result<Self::SerializeTupleStruct> {
+

             
252
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
        self.serialize_seq(Some(len))
+
+
    #[cfg_attr(feature = "tracing", instrument)]
253
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
    }
+
+
    fn serialize_tuple_struct(
-

+                
        self,
255
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument)]
+
+
        _name: &'static str,
256
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn serialize_tuple_variant(
+
+
        len: usize,
-
        self,
+
    ) -> Result<Self::SerializeTupleStruct> {
-
        _name: &'static str,
+
        self.serialize_seq(Some(len))
-
        _variant_index: u32,
+
    }
-
        variant: &'static str,
+

             
261
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
        len: usize,
+
+
    #[cfg_attr(feature = "tracing", instrument)]
262
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
    ) -> Result<Self::SerializeTupleVariant> {
+
+
    fn serialize_tuple_variant(
-
        format::write_named(&mut self.output)?;
+
        self,
-
        self.write_symbol(variant)?;
+
        _name: &'static str,
-
        self.serialize_seq(Some(len))
+
        _variant_index: u32,
-
    }
+
        variant: &'static str,
-

+                
        len: usize,
268
- 282037 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument)]
+
+
    ) -> Result<Self::SerializeTupleVariant> {
269
- 141028 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn serialize_map(self, len: Option<usize>) -> Result<Self::SerializeMap> {
+
+
        format::write_named(&mut self.output)?;
-
        if let Some(len) = len {
+
        self.write_symbol(variant)?;
-
            self.bytes_written +=
+
        self.serialize_seq(Some(len))
-
                format::write_atom_header(&mut self.output, Kind::Map, Some(len as u64))?;
+
    }
-
            Ok(MapSerializer {
+

             
274
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 282037
-
-
                serializer: self,
+
+
    #[cfg_attr(feature = "tracing", instrument)]
275
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 141028
-
-
                known_length: true,
+
+
    fn serialize_map(self, len: Option<usize>) -> Result<Self::SerializeMap> {
-
            })
+
        if let Some(len) = len {
-
        } else {
+
            self.bytes_written +=
-
            self.bytes_written += format::write_special(&mut self.output, Special::DynamicMap)?;
+
                format::write_atom_header(&mut self.output, Kind::Map, Some(len as u64))?;
-
                known_length: false,
+
                known_length: true,
-
        }
+
        } else {
-
    }
+
            self.bytes_written += format::write_special(&mut self.output, Special::DynamicMap)?;
-

+                
            Ok(MapSerializer {
286
- 282032 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument)]
+
+
                serializer: self,
287
- 141023 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    fn serialize_struct(self, _name: &'static str, len: usize) -> Result<Self::SerializeStruct> {
+
+
                known_length: false,
-
        self.serialize_map(Some(len))
+
            })
-
    }
+
        }
-

+                
    }
291
- 2 + class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white"> +
-
-
    #[cfg_attr(feature = "tracing", instrument)]
+
+

             
- 2 + 282032
-
    fn serialize_struct_variant(
+
    #[cfg_attr(feature = "tracing", instrument)]
293
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 141023
-
-
        self,
+
+
    fn serialize_struct(self, _name: &'static str, len: usize) -> Result<Self::SerializeStruct> {
-
        name: &'static str,
+
        self.serialize_map(Some(len))
-
        _variant_index: u32,
+
    }
-
        variant: &'static str,
+

             
297
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
        len: usize,
+
+
    #[cfg_attr(feature = "tracing", instrument)]
298
- + class="column is-1 is-narrow p-0 has-text-centered has-text-success-light has-background-success"> + 2
-
-
    ) -> Result<Self::SerializeStructVariant> {
+
+
    fn serialize_struct_variant(
-
        format::write_named(&mut self.output)?;
+
        self,
-
        self.write_symbol(variant)?;
+
        name: &'static str,
-
        self.serialize_struct(name, len)
+
        _variant_index: u32,
-
    }
+
        variant: &'static str,
-
}
+
        len: usize,
-

+                
    ) -> Result<Self::SerializeStructVariant> {
-
impl<'de, 'a: 'de, W: WriteBytesExt + 'a> ser::SerializeSeq for &'de mut Serializer<'a, W> {
+
        format::write_named(&mut self.output)?;
-
    type Error = Error;
+
        self.write_symbol(variant)?;
-
    type Ok = ();
+
        self.serialize_struct(name, len)
-

+                
    }
309
+
+ +
+
+
}
+
+
+
+ 310 +
+
+ +
+
+

+            
+
+
+ 311 +
+
+ +
+
+
impl<'de, 'a: 'de, W: WriteBytesExt + 'a> ser::SerializeSeq for &'de mut Serializer<'a, W> {
+
+
+
+ 312 +
+
+ +
+
+
    type Error = Error;
+
+
+
+ 313 +
+
+ +
+
+
    type Ok = ();
+
+
+
+ 314 +
+
+ +
+
+

+            
+
+
+ 315 +
140021 @@ -4056,8 +4134,8 @@
- 310 + id="316"> + 316
@@ -4069,8 +4147,8 @@
- 311 + id="317"> + 317
@@ -4082,8 +4160,8 @@
- 312 + id="318"> + 318
@@ -4095,8 +4173,8 @@
- 313 + id="319"> + 319
@@ -4108,8 +4186,8 @@
- 314 + id="320"> + 320
@@ -4121,8 +4199,8 @@
- 315 + id="321"> + 321
@@ -4134,8 +4212,8 @@
- 316 + id="322"> + 322
@@ -4147,8 +4225,8 @@
- 317 + id="323"> + 323
@@ -4160,8 +4238,8 @@
- 318 + id="324"> + 324
@@ -4173,8 +4251,8 @@
- 319 + id="325"> + 325
@@ -4186,8 +4264,8 @@
- 320 + id="326"> + 326
@@ -4199,8 +4277,8 @@
- 321 + id="327"> + 327
@@ -4212,8 +4290,8 @@
- 322 + id="328"> + 328
@@ -4225,8 +4303,8 @@
- 323 + id="329"> + 329
@@ -4238,8 +4316,8 @@
- 324 + id="330"> + 330
@@ -4251,8 +4329,8 @@
- 325 + id="331"> + 331
@@ -4264,8 +4342,8 @@
- 326 + id="332"> + 332
@@ -4277,8 +4355,8 @@
- 327 + id="333"> + 333
@@ -4290,8 +4368,8 @@
- 328 + id="334"> + 334
@@ -4303,8 +4381,8 @@
- 329 + id="335"> + 335
@@ -4316,8 +4394,8 @@
- 330 + id="336"> + 336
@@ -4329,8 +4407,8 @@
- 331 + id="337"> + 337
@@ -4342,8 +4420,8 @@
- 332 + id="338"> + 338
@@ -4355,8 +4433,8 @@
- 333 + id="339"> + 339
@@ -4368,8 +4446,8 @@
- 334 + id="340"> + 340
@@ -4381,8 +4459,8 @@
- 335 + id="341"> + 341
@@ -4394,8 +4472,8 @@
- 336 + id="342"> + 342
@@ -4407,8 +4485,8 @@
- 337 + id="343"> + 343
@@ -4420,8 +4498,8 @@
- 338 + id="344"> + 344
@@ -4433,8 +4511,8 @@
- 339 + id="345"> + 345
@@ -4446,8 +4524,8 @@
- 340 + id="346"> + 346
@@ -4459,8 +4537,8 @@
- 341 + id="347"> + 347
@@ -4472,8 +4550,8 @@
- 342 + id="348"> + 348
@@ -4485,8 +4563,8 @@
- 343 + id="349"> + 349
@@ -4498,8 +4576,8 @@
- 344 + id="350"> + 350
@@ -4511,8 +4589,8 @@
- 345 + id="351"> + 351
@@ -4524,8 +4602,8 @@
- 346 + id="352"> + 352
@@ -4537,8 +4615,8 @@
- 347 + id="353"> + 353
@@ -4550,8 +4628,8 @@
- 348 + id="354"> + 354
@@ -4563,8 +4641,8 @@
- 349 + id="355"> + 355
@@ -4576,8 +4654,8 @@
- 350 + id="356"> + 356
@@ -4589,8 +4667,8 @@
- 351 + id="357"> + 357
@@ -4602,8 +4680,8 @@
- 352 + id="358"> + 358
@@ -4615,8 +4693,8 @@
- 353 + id="359"> + 359
@@ -4628,8 +4706,8 @@
- 354 + id="360"> + 360
@@ -4641,8 +4719,8 @@
- 355 + id="361"> + 361
@@ -4654,8 +4732,8 @@
- 356 + id="362"> + 362
@@ -4667,8 +4745,8 @@
- 357 + id="363"> + 363
@@ -4680,8 +4758,8 @@
- 358 + id="364"> + 364
@@ -4693,8 +4771,8 @@
- 359 + id="365"> + 365
@@ -4706,8 +4784,8 @@
- 360 + id="366"> + 366
@@ -4719,8 +4797,8 @@
- 361 + id="367"> + 367
@@ -4732,8 +4810,8 @@
- 362 + id="368"> + 368
@@ -4745,8 +4823,8 @@
- 363 + id="369"> + 369
@@ -4758,8 +4836,8 @@
- 364 + id="370"> + 370
@@ -4771,8 +4849,8 @@
- 365 + id="371"> + 371
@@ -4784,8 +4862,8 @@
- 366 + id="372"> + 372
@@ -4797,8 +4875,8 @@
- 367 + id="373"> + 373
@@ -4810,8 +4888,8 @@
- 368 + id="374"> + 374
@@ -4823,8 +4901,8 @@
- 369 + id="375"> + 375
@@ -4836,8 +4914,8 @@
- 370 + id="376"> + 376
@@ -4849,8 +4927,8 @@
- 371 + id="377"> + 377
@@ -4862,8 +4940,8 @@
- 372 + id="378"> + 378
@@ -4875,8 +4953,8 @@
- 373 + id="379"> + 379
@@ -4888,8 +4966,8 @@
- 374 + id="380"> + 380
@@ -4901,8 +4979,8 @@
- 375 + id="381"> + 381
@@ -4914,8 +4992,8 @@
- 376 + id="382"> + 382
@@ -4927,8 +5005,8 @@
- 377 + id="383"> + 383
@@ -4940,8 +5018,8 @@
- 378 + id="384"> + 384
@@ -4953,8 +5031,8 @@
- 379 + id="385"> + 385
@@ -4966,8 +5044,8 @@
- 380 + id="386"> + 386
@@ -4979,8 +5057,8 @@
- 381 + id="387"> + 387
@@ -4992,8 +5070,8 @@
- 382 + id="388"> + 388
@@ -5005,8 +5083,8 @@
- 383 + id="389"> + 389
@@ -5018,8 +5096,8 @@
- 384 + id="390"> + 390
@@ -5031,8 +5109,8 @@
- 385 + id="391"> + 391
@@ -5044,8 +5122,8 @@
- 386 + id="392"> + 392
@@ -5057,8 +5135,8 @@
- 387 + id="393"> + 393
@@ -5070,8 +5148,8 @@
- 388 + id="394"> + 394
@@ -5083,8 +5161,8 @@
- 389 + id="395"> + 395
@@ -5096,8 +5174,8 @@
- 390 + id="396"> + 396
@@ -5109,8 +5187,8 @@
- 391 + id="397"> + 397
@@ -5122,8 +5200,8 @@
- 392 + id="398"> + 398
@@ -5135,8 +5213,8 @@
- 393 + id="399"> + 399
@@ -5148,8 +5226,8 @@
- 394 + id="400"> + 400
@@ -5161,8 +5239,8 @@
- 395 + id="401"> + 401
@@ -5174,8 +5252,8 @@
- 396 + id="402"> + 402
@@ -5187,8 +5265,8 @@
- 397 + id="403"> + 403
@@ -5200,8 +5278,8 @@
- 398 + id="404"> + 404
@@ -5213,8 +5291,8 @@
- 399 + id="405"> + 405
@@ -5226,8 +5304,8 @@
- 400 + id="406"> + 406
@@ -5239,8 +5317,8 @@
- 401 + id="407"> + 407
@@ -5252,8 +5330,8 @@
- 402 + id="408"> + 408
@@ -5265,8 +5343,8 @@
- 403 + id="409"> + 409
@@ -5278,8 +5356,8 @@
- 404 + id="410"> + 410
@@ -5291,8 +5369,8 @@
- 405 + id="411"> + 411
@@ -5304,8 +5382,8 @@
- 406 + id="412"> + 412
@@ -5317,8 +5395,8 @@
- 407 + id="413"> + 413
@@ -5330,8 +5408,8 @@
- 408 + id="414"> + 414
@@ -5343,8 +5421,8 @@
- 409 + id="415"> + 415
@@ -5356,8 +5434,8 @@
- 410 + id="416"> + 416
@@ -5369,8 +5447,8 @@
- 411 + id="417"> + 417
@@ -5382,8 +5460,8 @@
- 412 + id="418"> + 418
@@ -5395,8 +5473,8 @@
- 413 + id="419"> + 419
@@ -5408,8 +5486,8 @@
- 414 + id="420"> + 420
@@ -5421,8 +5499,8 @@
- 415 + id="421"> + 421
@@ -5434,8 +5512,8 @@
- 416 + id="422"> + 422
@@ -5447,8 +5525,8 @@
- 417 + id="423"> + 423
@@ -5460,8 +5538,8 @@
- 418 + id="424"> + 424
@@ -5473,8 +5551,8 @@
- 419 + id="425"> + 425
@@ -5486,8 +5564,8 @@
- 420 + id="426"> + 426
@@ -5499,8 +5577,8 @@
- 421 + id="427"> + 427
@@ -5512,8 +5590,8 @@
- 422 + id="428"> + 428
@@ -5525,8 +5603,8 @@
- 423 + id="429"> + 429
@@ -5538,8 +5616,8 @@
- 424 + id="430"> + 430
@@ -5551,8 +5629,8 @@
- 425 + id="431"> + 431
@@ -5564,8 +5642,8 @@
- 426 + id="432"> + 432
@@ -5577,8 +5655,8 @@
- 427 + id="433"> + 433
@@ -5590,8 +5668,8 @@
- 428 + id="434"> + 434
@@ -5603,8 +5681,8 @@
- 429 + id="435"> + 435
@@ -5616,8 +5694,8 @@
- 430 + id="436"> + 436
@@ -5629,8 +5707,8 @@
- 431 + id="437"> + 437
@@ -5642,8 +5720,8 @@
- 432 + id="438"> + 438
@@ -5655,8 +5733,8 @@
- 433 + id="439"> + 439
@@ -5668,8 +5746,8 @@
- 434 + id="440"> + 440
@@ -5681,8 +5759,8 @@
- 435 + id="441"> + 441
@@ -5694,8 +5772,8 @@
- 436 + id="442"> + 442
@@ -5707,8 +5785,8 @@
- 437 + id="443"> + 443
@@ -5720,8 +5798,8 @@
- 438 + id="444"> + 444
@@ -5733,8 +5811,8 @@
- 439 + id="445"> + 445
@@ -5746,8 +5824,8 @@
- 440 + id="446"> + 446
@@ -5759,8 +5837,8 @@
- 441 + id="447"> + 447
@@ -5772,8 +5850,8 @@
- 442 + id="448"> + 448
@@ -5785,8 +5863,8 @@
- 443 + id="449"> + 449
@@ -5798,8 +5876,8 @@
- 444 + id="450"> + 450
@@ -5811,8 +5889,8 @@
- 445 + id="451"> + 451
@@ -5824,12 +5902,12 @@
- 446 + id="452"> + 452
- 486 + 485
#[derive(Debug)]
@@ -5837,8 +5915,8 @@
- 447 + id="453"> + 453
@@ -5850,8 +5928,8 @@
- 448 + id="454"> + 454
@@ -5863,8 +5941,8 @@
- 449 + id="455"> + 455
@@ -5876,8 +5954,8 @@
- 450 + id="456"> + 456
@@ -5889,8 +5967,8 @@
- 451 + id="457"> + 457
@@ -5902,8 +5980,8 @@
- 452 + id="458"> + 458
@@ -5915,8 +5993,8 @@
- 453 + id="459"> + 459
@@ -5928,8 +6006,8 @@
- 454 + id="460"> + 460
@@ -5941,8 +6019,8 @@
- 455 + id="461"> + 461
@@ -5954,8 +6032,8 @@
- 456 + id="462"> + 462
@@ -5967,8 +6045,8 @@
- 457 + id="463"> + 463
@@ -5980,8 +6058,8 @@
- 458 + id="464"> + 464
@@ -5993,8 +6071,8 @@
- 459 + id="465"> + 465
@@ -6006,8 +6084,8 @@
- 460 + id="466"> + 466
@@ -6019,8 +6097,8 @@
- 461 + id="467"> + 467
@@ -6032,8 +6110,8 @@
- 462 + id="468"> + 468
@@ -6045,8 +6123,8 @@
- 463 + id="469"> + 469
@@ -6058,8 +6136,8 @@
- 464 + id="470"> + 470
@@ -6071,8 +6149,8 @@
- 465 + id="471"> + 471
@@ -6084,8 +6162,8 @@
- 466 + id="472"> + 472
@@ -6097,8 +6175,8 @@
- 467 + id="473"> + 473
@@ -6110,8 +6188,8 @@
- 468 + id="474"> + 474
@@ -6123,8 +6201,8 @@
- 469 + id="475"> + 475
@@ -6136,8 +6214,8 @@
- 470 + id="476"> + 476
@@ -6149,8 +6227,8 @@
- 471 + id="477"> + 477
@@ -6162,8 +6240,8 @@
- 472 + id="478"> + 478
@@ -6175,8 +6253,8 @@
- 473 + id="479"> + 479
@@ -6188,8 +6266,8 @@
- 474 + id="480"> + 480
@@ -6201,8 +6279,8 @@
- 475 + id="481"> + 481
@@ -6214,8 +6292,8 @@
- 476 + id="482"> + 482
@@ -6227,8 +6305,8 @@
- 477 + id="483"> + 483
@@ -6240,8 +6318,8 @@
- 478 + id="484"> + 484
@@ -6253,8 +6331,8 @@
- 479 + id="485"> + 485
@@ -6266,8 +6344,8 @@
- 480 + id="486"> + 486
@@ -6279,12 +6357,12 @@
- 481 + id="487"> + 487
- 10452126 + 10455573
            .binary_search_by(|check| symbol_address.cmp(&check.0))
@@ -6292,8 +6370,8 @@
- 482 + id="488"> + 488
@@ -6305,8 +6383,8 @@
- 483 + id="489"> + 489
@@ -6318,8 +6396,8 @@
- 484 + id="490"> + 490
@@ -6331,8 +6409,8 @@
- 485 + id="491"> + 491
@@ -6344,8 +6422,8 @@
- 486 + id="492"> + 492
@@ -6357,8 +6435,8 @@
- 487 + id="493"> + 493
@@ -6370,8 +6448,8 @@
- 488 + id="494"> + 494
@@ -6383,8 +6461,8 @@
- 489 + id="495"> + 495
@@ -6396,8 +6474,8 @@
- 490 + id="496"> + 496
@@ -6409,8 +6487,8 @@
- 491 + id="497"> + 497
@@ -6422,8 +6500,8 @@
- 492 + id="498"> + 498
@@ -6435,8 +6513,8 @@
- 493 + id="499"> + 499
@@ -6448,8 +6526,8 @@
- 494 + id="500"> + 500
@@ -6461,8 +6539,8 @@
- 495 + id="501"> + 501
@@ -6474,12 +6552,12 @@
- 496 + id="502"> + 502
- 486 + 485
#[derive(Debug)]
@@ -6487,8 +6565,8 @@
- 497 + id="503"> + 503
@@ -6500,8 +6578,8 @@
- 498 + id="504"> + 504
@@ -6513,8 +6591,8 @@
- 499 + id="505"> + 505
@@ -6526,8 +6604,8 @@
- 500 + id="506"> + 506
@@ -6539,8 +6617,8 @@
- 501 + id="507"> + 507
@@ -6552,8 +6630,8 @@
- 502 + id="508"> + 508
@@ -6565,8 +6643,8 @@
- 503 + id="509"> + 509
@@ -6578,8 +6656,8 @@
- 504 + id="510"> + 510
@@ -6591,8 +6669,8 @@
- 505 + id="511"> + 511
@@ -6604,8 +6682,8 @@
- 506 + id="512"> + 512
@@ -6617,8 +6695,8 @@
- 507 + id="513"> + 513
@@ -6630,8 +6708,8 @@
- 508 + id="514"> + 514
@@ -6643,8 +6721,8 @@
- 509 + id="515"> + 515
@@ -6656,8 +6734,8 @@
- 510 + id="516"> + 516
@@ -6669,8 +6747,8 @@
- 511 + id="517"> + 517
@@ -6682,8 +6760,8 @@
- 512 + id="518"> + 518
@@ -6695,8 +6773,8 @@
- 513 + id="519"> + 519
@@ -6708,8 +6786,8 @@
- 514 + id="520"> + 520
@@ -6721,8 +6799,8 @@
- 515 + id="521"> + 521
@@ -6734,8 +6812,8 @@
- 516 + id="522"> + 522
@@ -6747,8 +6825,8 @@
- 517 + id="523"> + 523
@@ -6760,8 +6838,8 @@
- 518 + id="524"> + 524
@@ -6773,8 +6851,8 @@
- 519 + id="525"> + 525
@@ -6786,8 +6864,8 @@
- 520 + id="526"> + 526
@@ -6799,7 +6877,7 @@
-

Date: 2023-07-28 13:45

+

Date: 2023-07-29 18:55

diff --git a/coverage/pot/src/value.rs.html b/coverage/pot/src/value.rs.html index 4ed38766..98f55d23 100644 --- a/coverage/pot/src/value.rs.html +++ b/coverage/pot/src/value.rs.html @@ -15,7 +15,7 @@

Lines

- 54.6 %

+ 54.36 %

@@ -24734,7 +24734,7 @@ 1
-
#[derive(thiserror::Error, Debug, PartialEq)]
+
#[derive(Debug, PartialEq)]
-
    #[error("expected {kind} but got {value}")]
+
    Expected {
-
    Expected {
+
        /// The kind of data expected.
-
        /// The kind of data expected.
+
        kind: &'static str,
-
        kind: &'static str,
+
        /// The value that was encountered.
-
        /// The value that was encountered.
+
        value: Value<'static>,
-
        value: Value<'static>,
+
    },
-
    },
+
    /// A custom deserialization error. These errors originate outside of Pot.
-
    /// A custom deserialization error. These errors originate outside of Pot.
+
    Custom(String),
-
    #[error("{0}")]
+
}
-
    Custom(String),
+

             
-
}
+
impl std::error::Error for ValueError {}
-
impl serde::de::Error for ValueError {
+
impl Display for ValueError {
-
    fn custom<T>(msg: T) -> Self
+
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
-
    where
+
        match self {
-
        T: Display,
+
            ValueError::Expected { kind, value } => write!(f, "expected {kind} but got {value}"),
-
    {
+
            ValueError::Custom(msg) => f.write_str(msg),
1921
+ class="column is-1 is-narrow p-0 has-text-centered has-text-white has-background-white">
-
-
        Self::Custom(msg.to_string())
+
+
        }
-
impl serde::ser::Error for ValueError {
+
impl serde::de::Error for ValueError {
+
+ +
+
+
    fn custom<T>(msg: T) -> Self
+
+
+
+ 1927 +
+
+ +
+
+
    where
+
+
+
+ 1928 +
+
+ +
+
+
        T: Display,
+
+
+
+ 1929 +
+
+ +
+
+
    {
+
+
+
+ 1930 +
+
+ +
+
+
        Self::Custom(msg.to_string())
+
+
+
+ 1931 +
+
+ +
+
+
    }
+
+
+
+ 1932 +
+
+ +
+
+
}
+
+
+
+ 1933 +
+
+ +
+
+

+            
+
+
+ 1934 +
+
+ +
+
+
impl serde::ser::Error for ValueError {
+
+
+
+ 1935 +
1 @@ -25077,8 +25194,8 @@
- 1927 + id="1936"> + 1936
@@ -25090,8 +25207,8 @@
- 1928 + id="1937"> + 1937
@@ -25103,8 +25220,8 @@
- 1929 + id="1938"> + 1938
@@ -25116,8 +25233,8 @@
- 1930 + id="1939"> + 1939
@@ -25129,8 +25246,8 @@
- 1931 + id="1940"> + 1940
@@ -25142,8 +25259,8 @@
- 1932 + id="1941"> + 1941
@@ -25155,7 +25272,7 @@