diff options
Diffstat (limited to 'src/raw.rs')
-rw-r--r-- | src/raw.rs | 268 |
1 files changed, 11 insertions, 257 deletions
@@ -177,9 +177,11 @@ impl RawValue { /// - the input has no leading or trailing whitespace, and /// - the input has capacity equal to its length. pub fn from_string(json: String) -> Result<Box<Self>, Error> { - let borrowed = tri!(crate::from_str::<&Self>(&json)); - if borrowed.json.len() < json.len() { - return Ok(borrowed.to_owned()); + { + let borrowed = crate::from_str::<&Self>(&json)?; + if borrowed.json.len() < json.len() { + return Ok(borrowed.to_owned()); + } } Ok(Self::from_owned(json.into_boxed_str())) } @@ -285,7 +287,7 @@ pub fn to_raw_value<T>(value: &T) -> Result<Box<RawValue>, Error> where T: ?Sized + Serialize, { - let json_string = tri!(crate::to_string(value)); + let json_string = crate::to_string(value)?; Ok(RawValue::from_owned(json_string.into_boxed_str())) } @@ -296,8 +298,8 @@ impl Serialize for RawValue { where S: Serializer, { - let mut s = tri!(serializer.serialize_struct(TOKEN, 1)); - tri!(s.serialize_field(TOKEN, &self.json)); + let mut s = serializer.serialize_struct(TOKEN, 1)?; + s.serialize_field(TOKEN, &self.json)?; s.end() } } @@ -320,7 +322,7 @@ impl<'de: 'a, 'a> Deserialize<'de> for &'a RawValue { where V: MapAccess<'de>, { - let value = tri!(visitor.next_key::<RawKey>()); + let value = visitor.next_key::<RawKey>()?; if value.is_none() { return Err(de::Error::invalid_type(Unexpected::Map, &self)); } @@ -350,7 +352,7 @@ impl<'de> Deserialize<'de> for Box<RawValue> { where V: MapAccess<'de>, { - let value = tri!(visitor.next_key::<RawKey>()); + let value = visitor.next_key::<RawKey>()?; if value.is_none() { return Err(de::Error::invalid_type(Unexpected::Map, &self)); } @@ -390,7 +392,7 @@ impl<'de> Deserialize<'de> for RawKey { } } - tri!(deserializer.deserialize_identifier(FieldVisitor)); + deserializer.deserialize_identifier(FieldVisitor)?; Ok(RawKey) } } @@ -527,251 +529,3 @@ impl<'de> MapAccess<'de> for BorrowedRawDeserializer<'de> { seed.deserialize(BorrowedStrDeserializer::new(self.raw_value.take().unwrap())) } } - -impl<'de> IntoDeserializer<'de, Error> for &'de RawValue { - type Deserializer = &'de RawValue; - - fn into_deserializer(self) -> Self::Deserializer { - self - } -} - -impl<'de> Deserializer<'de> for &'de RawValue { - type Error = Error; - - fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_any(visitor) - } - - fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_bool(visitor) - } - - fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_i8(visitor) - } - - fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_i16(visitor) - } - - fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_i32(visitor) - } - - fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_i64(visitor) - } - - fn deserialize_i128<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_i128(visitor) - } - - fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_u8(visitor) - } - - fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_u16(visitor) - } - - fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_u32(visitor) - } - - fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_u64(visitor) - } - - fn deserialize_u128<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_u128(visitor) - } - - fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_f32(visitor) - } - - fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_f64(visitor) - } - - fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_char(visitor) - } - - fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_str(visitor) - } - - fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_string(visitor) - } - - fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_bytes(visitor) - } - - fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_byte_buf(visitor) - } - - fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_option(visitor) - } - - fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_unit(visitor) - } - - fn deserialize_unit_struct<V>(self, name: &'static str, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_unit_struct(name, visitor) - } - - fn deserialize_newtype_struct<V>( - self, - name: &'static str, - visitor: V, - ) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_newtype_struct(name, visitor) - } - - fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_seq(visitor) - } - - fn deserialize_tuple<V>(self, len: usize, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_tuple(len, visitor) - } - - fn deserialize_tuple_struct<V>( - self, - name: &'static str, - len: usize, - visitor: V, - ) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_tuple_struct(name, len, visitor) - } - - fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_map(visitor) - } - - fn deserialize_struct<V>( - self, - name: &'static str, - fields: &'static [&'static str], - visitor: V, - ) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_struct(name, fields, visitor) - } - - fn deserialize_enum<V>( - self, - name: &'static str, - variants: &'static [&'static str], - visitor: V, - ) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_enum(name, variants, visitor) - } - - fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_identifier(visitor) - } - - fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Error> - where - V: Visitor<'de>, - { - crate::Deserializer::from_str(&self.json).deserialize_ignored_any(visitor) - } -} |