mirror of
https://github.com/serde-rs/json.git
synced 2026-03-13 17:57:45 +00:00
Merge pull request #649 from serde-rs/fused
Implement FusedIterator where possible
This commit is contained in:
commit
8e76584c20
@ -4,7 +4,7 @@ use crate::error::{Error, ErrorCode, Result};
|
||||
use crate::lib::str::FromStr;
|
||||
use crate::lib::*;
|
||||
use crate::number::Number;
|
||||
use crate::read::{self, Reference};
|
||||
use crate::read::{self, Fused, Reference};
|
||||
use serde::de::{self, Expected, Unexpected};
|
||||
use serde::{forward_to_deserialize_any, serde_if_integer128};
|
||||
|
||||
@ -2181,6 +2181,13 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
impl<'de, R, T> FusedIterator for StreamDeserializer<'de, R, T>
|
||||
where
|
||||
R: Read<'de> + Fused,
|
||||
T: de::Deserialize<'de>,
|
||||
{
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
fn from_trait<'de, R, T>(read: R) -> Result<T>
|
||||
|
||||
@ -363,6 +363,7 @@ mod lib {
|
||||
pub use self::core::default::{self, Default};
|
||||
pub use self::core::fmt::{self, Debug, Display};
|
||||
pub use self::core::hash::{self, Hash};
|
||||
pub use self::core::iter::FusedIterator;
|
||||
pub use self::core::marker::{self, PhantomData};
|
||||
pub use self::core::result::{self, Result};
|
||||
pub use self::core::{borrow, char, cmp, iter, mem, num, ops, slice, str};
|
||||
|
||||
@ -397,6 +397,8 @@ macro_rules! delegate_iterator {
|
||||
self.iter.len()
|
||||
}
|
||||
}
|
||||
|
||||
impl $($generics)* FusedIterator for $name $($generics)* {}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -718,6 +718,11 @@ impl<'a> Read<'a> for StrRead<'a> {
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// Marker for whether StreamDeserializer can implement FusedIterator.
|
||||
pub trait Fused: private::Sealed {}
|
||||
impl<'a> Fused for SliceRead<'a> {}
|
||||
impl<'a> Fused for StrRead<'a> {}
|
||||
|
||||
// Lookup table of bytes that must be escaped. A value of true at index i means
|
||||
// that byte i requires an escape sequence in the input.
|
||||
static ESCAPE: [bool; 256] = {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user