[−][src]Struct serde_qs::Config
To override the default serialization parameters, first construct a new Config.
The strict
parameter controls whether the deserializer will tolerate
encoded brackets as part of the key. For example, serializing the field
a = vec![12]
might give a[0]=12
. In strict mode, the only string accepted
will be this string, whereas in non-strict mode, this can also be deserialized
from a%5B0%5D=12
. Strict mode is more accurate for cases where it a field
may contain square brackets.
In non-strict mode, the deserializer will generally tolerate unexpected
characters.
A max_depth
of 0 implies no nesting: the result will be a flat map.
This is mostly useful when the maximum nested depth is known beforehand,
to prevent denial of service attacks by providing incredibly deeply nested
inputs.
The default value for max_depth
is 5, and the default mode is strict=true
.
use serde_qs::Config; use std::collections::HashMap; let config = Config::new(0, true); let map: HashMap<String, String> = config.deserialize_str("a[b][c]=1") .unwrap(); assert_eq!(map.get("a[b][c]").unwrap(), "1"); let config = Config::new(10, true); let map: HashMap<String, HashMap<String, HashMap<String, String>>> = config.deserialize_str("a[b][c]=1").unwrap(); assert_eq!(map.get("a").unwrap().get("b").unwrap().get("c").unwrap(), "1");
Implementations
impl Config
[src]
pub fn new(max_depth: usize, strict: bool) -> Self
[src]
Create a new Config
with the specified max_depth
and strict
mode.
impl Config
[src]
pub fn deserialize_bytes<'de, T: Deserialize<'de>>(
&self,
input: &'de [u8]
) -> Result<T, Error>
[src]
&self,
input: &'de [u8]
) -> Result<T, Error>
Deserializes a querystring from a &[u8]
using this Config
.
pub fn deserialize_str<'de, T: Deserialize<'de>>(
&self,
input: &'de str
) -> Result<T, Error>
[src]
&self,
input: &'de str
) -> Result<T, Error>
Deserializes a querystring from a &str
using this Config
.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Config
[src]
impl Send for Config
[src]
impl Sync for Config
[src]
impl Unpin for Config
[src]
impl UnwindSafe for Config
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,