summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Lee <huacnlee@gmail.com>2024-04-08 02:43:08 +0800
committerGitHub <noreply@github.com>2024-04-07 13:43:08 -0500
commit8283aaff3322732585519912ff0220249f0bbf6f (patch)
treeb118ecaf2c22c8d6bd05c15b5c028cc1a07d5999
parent9628c7e52006fe248978d9a926e161696987f5c5 (diff)
Add `Deserializer::new` to crate a new deserializer, and public deserializer. (#91)
* Add `Deserializer::new` to crate a new deserializer, and public deserializer. * Update mod.rs Co-authored-by: Paul Hansen <mail@paul.rs> --------- Co-authored-by: Paul Hansen <mail@paul.rs>
-rw-r--r--src/de/mod.rs8
-rw-r--r--src/lib.rs4
2 files changed, 8 insertions, 4 deletions
diff --git a/src/de/mod.rs b/src/de/mod.rs
index ef9cd76..290d843 100644
--- a/src/de/mod.rs
+++ b/src/de/mod.rs
@@ -189,7 +189,7 @@ pub fn from_str<'de, T: de::Deserialize<'de>>(input: &'de str) -> Result<T> {
/// A deserializer for the querystring format.
///
/// Supported top-level outputs are structs and maps.
-pub(crate) struct QsDeserializer<'a> {
+pub struct QsDeserializer<'a> {
iter: IntoIter<Cow<'a, str>, Level<'a>>,
value: Option<Level<'a>>,
}
@@ -213,9 +213,13 @@ impl<'a> QsDeserializer<'a> {
}
/// Returns a new `QsDeserializer<'a>`.
- fn with_config(config: &Config, input: &'a [u8]) -> Result<Self> {
+ pub fn with_config(config: &Config, input: &'a [u8]) -> Result<Self> {
parse::Parser::new(input, config.max_depth(), config.strict).as_deserializer()
}
+
+ pub fn new(input: &'a [u8]) -> Result<Self> {
+ Self::with_config(&Config::default(), input)
+ }
}
impl<'de> de::Deserializer<'de> for QsDeserializer<'de> {
diff --git a/src/lib.rs b/src/lib.rs
index 82ba41a..a21c5f2 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -207,9 +207,9 @@ mod ser;
pub(crate) mod utils;
#[doc(inline)]
-pub use de::Config;
-#[doc(inline)]
pub use de::{from_bytes, from_str};
+#[doc(inline)]
+pub use de::{Config, QsDeserializer as Deserializer};
pub use error::Error;
#[doc(inline)]
pub use ser::{to_string, to_writer, Serializer};