pub struct Amf0Decoder<R> { /* private fields */ }
Expand description
AMF0 decoder.
Provides various functions to decode different types of AMF0 values.
Implementations§
Source§impl<B> Amf0Decoder<BytesBuf<B>>where
B: Buf,
impl<B> Amf0Decoder<BytesBuf<B>>where
B: Buf,
Source§impl<R> Amf0Decoder<IoRead<R>>where
R: Read,
impl<R> Amf0Decoder<IoRead<R>>where
R: Read,
Sourcepub fn from_reader(reader: R) -> Self
pub fn from_reader(reader: R) -> Self
Create a new deserializer from a reader implementing std::io::Read
.
Source§impl<'a> Amf0Decoder<Slice<'a>>
impl<'a> Amf0Decoder<Slice<'a>>
Sourcepub fn from_slice(slice: &'a [u8]) -> Amf0Decoder<Slice<'a>>
pub fn from_slice(slice: &'a [u8]) -> Amf0Decoder<Slice<'a>>
Create a new deserializer from a byte slice.
Source§impl<'a, R> Amf0Decoder<R>where
R: ZeroCopyReader<'a>,
impl<'a, R> Amf0Decoder<R>where
R: ZeroCopyReader<'a>,
Sourcepub fn decode_value(&mut self) -> Result<Amf0Value<'a>, Amf0Error>
pub fn decode_value(&mut self) -> Result<Amf0Value<'a>, Amf0Error>
Decode a Amf0Value
from the buffer.
Sourcepub fn decode_all(&mut self) -> Result<Vec<Amf0Value<'a>>, Amf0Error>
pub fn decode_all(&mut self) -> Result<Vec<Amf0Value<'a>>, Amf0Error>
Decode all values from the buffer until the end.
Sourcepub fn stream(&mut self) -> Amf0DecoderStream<'_, 'a, R> ⓘ
pub fn stream(&mut self) -> Amf0DecoderStream<'_, 'a, R> ⓘ
Convert the decoder into an iterator over the values in the buffer.
Sourcepub fn has_remaining(&mut self) -> Result<bool, Amf0Error>
pub fn has_remaining(&mut self) -> Result<bool, Amf0Error>
Check if there are any values left in the buffer.
Sourcepub fn peek_marker(&mut self) -> Result<Amf0Marker, Amf0Error>
pub fn peek_marker(&mut self) -> Result<Amf0Marker, Amf0Error>
Peek the next marker in the buffer without consuming it.
Sourcepub fn decode_number(&mut self) -> Result<f64, Amf0Error>
pub fn decode_number(&mut self) -> Result<f64, Amf0Error>
Decode a number from the buffer.
Sourcepub fn decode_boolean(&mut self) -> Result<bool, Amf0Error>
pub fn decode_boolean(&mut self) -> Result<bool, Amf0Error>
Decode a boolean from the buffer.
Sourcepub fn decode_string(&mut self) -> Result<StringCow<'a>, Amf0Error>
pub fn decode_string(&mut self) -> Result<StringCow<'a>, Amf0Error>
Decode a string from the buffer.
This function can decode both normal strings and long strings.
Sourcepub fn decode_null(&mut self) -> Result<(), Amf0Error>
pub fn decode_null(&mut self) -> Result<(), Amf0Error>
Decode a null value from the buffer.
This function can also decode undefined values.
Sourcepub fn deserialize<T>(&mut self) -> Result<T, Amf0Error>where
T: Deserialize<'a>,
Available on crate feature serde
only.
pub fn deserialize<T>(&mut self) -> Result<T, Amf0Error>where
T: Deserialize<'a>,
serde
only.Deserialize a value from the buffer using serde.
Sourcepub fn deserialize_stream<T>(&mut self) -> Amf0DeserializerStream<'_, R, T> ⓘwhere
T: Deserialize<'a>,
Available on crate feature serde
only.
pub fn deserialize_stream<T>(&mut self) -> Amf0DeserializerStream<'_, R, T> ⓘwhere
T: Deserialize<'a>,
serde
only.Deserialize a stream of values from the buffer using serde.
Sourcepub fn decode_object(&mut self) -> Result<Amf0Object<'a>, Amf0Error>
pub fn decode_object(&mut self) -> Result<Amf0Object<'a>, Amf0Error>
Decode an object from the buffer.
This function can decode normal objects, typed objects and ECMA arrays.
Sourcepub fn decode_strict_array(&mut self) -> Result<Amf0Array<'a>, Amf0Error>
pub fn decode_strict_array(&mut self) -> Result<Amf0Array<'a>, Amf0Error>
Decode a strict array from the buffer.
Trait Implementations§
Source§impl<R: Clone> Clone for Amf0Decoder<R>
impl<R: Clone> Clone for Amf0Decoder<R>
Source§fn clone(&self) -> Amf0Decoder<R>
fn clone(&self) -> Amf0Decoder<R>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<R: Debug> Debug for Amf0Decoder<R>
impl<R: Debug> Debug for Amf0Decoder<R>
Source§impl<'de, R> Deserializer<'de> for &mut Amf0Decoder<R>where
R: ZeroCopyReader<'de>,
Available on crate feature serde
only.
impl<'de, R> Deserializer<'de> for &mut Amf0Decoder<R>where
R: ZeroCopyReader<'de>,
serde
only.Source§type Error = Amf0Error
type Error = Amf0Error
Source§fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserializer
to figure out how to drive the visitor based
on what data type is in the input. Read moreSource§fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a bool
value.Source§fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting an i8
value.Source§fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting an i16
value.Source§fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting an i32
value.Source§fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting an i64
value.Source§fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a u8
value.Source§fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a u16
value.Source§fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a u32
value.Source§fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a u64
value.Source§fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a f32
value.Source§fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a f64
value.Source§fn deserialize_char<V>(self, _visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_char<V>(self, _visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a char
value.Source§fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a string value and would
benefit from taking ownership of buffered data owned by the
Deserializer
. Read moreSource§fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a string value and does
not benefit from taking ownership of buffered data owned by the
Deserializer
. Read moreSource§fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a byte array and does not
benefit from taking ownership of buffered data owned by the
Deserializer
. Read moreSource§fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a byte array and would
benefit from taking ownership of buffered data owned by the
Deserializer
. Read moreSource§fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting an optional value. Read moreSource§fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a unit value.Source§fn deserialize_unit_struct<V>(
self,
_name: &'static str,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_unit_struct<V>(
self,
_name: &'static str,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a unit struct with a
particular name.Source§fn deserialize_newtype_struct<V>(
self,
name: &'static str,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_newtype_struct<V>(
self,
name: &'static str,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a newtype struct with a
particular name.Source§fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a sequence of values.Source§fn deserialize_tuple<V>(
self,
len: usize,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_tuple<V>(
self,
len: usize,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a sequence of values and
knows how many values there are without looking at the serialized data.Source§fn deserialize_tuple_struct<V>(
self,
_name: &'static str,
len: usize,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_tuple_struct<V>(
self,
_name: &'static str,
len: usize,
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a tuple struct with a
particular name and number of fields.Source§fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a map of key-value pairs.Source§fn deserialize_struct<V>(
self,
_name: &'static str,
_fields: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_struct<V>(
self,
_name: &'static str,
_fields: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting a struct with a particular
name and fields.Source§fn deserialize_enum<V>(
self,
_name: &'static str,
_variants: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_enum<V>(
self,
_name: &'static str,
_variants: &'static [&'static str],
visitor: V,
) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting an enum value with a
particular name and possible variants.Source§fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type is expecting the name of a struct
field or the discriminant of an enum variant.Source§fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error>where
V: Visitor<'de>,
Deserialize
type needs to deserialize a value whose type
doesn’t matter because it is ignored. Read moreSource§fn deserialize_i128<V>(
self,
visitor: V,
) -> Result<<V as Visitor<'de>>::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_i128<V>(
self,
visitor: V,
) -> Result<<V as Visitor<'de>>::Value, Self::Error>where
V: Visitor<'de>,
Source§fn deserialize_u128<V>(
self,
visitor: V,
) -> Result<<V as Visitor<'de>>::Value, Self::Error>where
V: Visitor<'de>,
fn deserialize_u128<V>(
self,
visitor: V,
) -> Result<<V as Visitor<'de>>::Value, Self::Error>where
V: Visitor<'de>,
Source§fn is_human_readable(&self) -> bool
fn is_human_readable(&self) -> bool
Deserialize
implementations should expect to
deserialize their human-readable form. Read more