Struct querystring_tiny::QueryString
source · [−]pub struct QueryString { /* private fields */ }Expand description
A query string
Warning
The query parser is pretty simple and basically parses any key or key= or key=value component without further
validation.
The following rules apply:
- the query string MUST NOT begin with a
?– it’s not a bug, it’s a feature: this allows the parser to parse raw query strings in the body (e.g. from HTML forms) - keys don’t need a value (i.e.
key0&key1is valid) - keys can have an empty value (i.e.
key0=&key1=is valid) - keys can have a non-empty value (i.e.
key0=value0&key1=value1is valid) - empty keys/key-value pairs are ignored (i.e.
&evaluates to[],key0&&key1evaluates to["key0": "", "key1": ""]and=value0&key1=value1&evaluates to["key1": "value1"])
Implementations
Methods from Deref<Target = BTreeMap<Vec<u8>, Vec<u8>>>
1.0.0 · sourcepub fn get<Q>(&self, key: &Q) -> Option<&V> where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
pub fn get<Q>(&self, key: &Q) -> Option<&V> where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
Returns a reference to the value corresponding to the key.
The key may be any borrowed form of the map’s key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "a");
assert_eq!(map.get(&1), Some(&"a"));
assert_eq!(map.get(&2), None);1.40.0 · sourcepub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)> where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
pub fn get_key_value<Q>(&self, k: &Q) -> Option<(&K, &V)> where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
Returns the key-value pair corresponding to the supplied key.
The supplied key may be any borrowed form of the map’s key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "a");
assert_eq!(map.get_key_value(&1), Some((&1, &"a")));
assert_eq!(map.get_key_value(&2), None);sourcepub fn first_key_value(&self) -> Option<(&K, &V)> where
K: Ord,
🔬 This is a nightly-only experimental API. (map_first_last)
pub fn first_key_value(&self) -> Option<(&K, &V)> where
K: Ord,
map_first_last)Returns the first key-value pair in the map. The key in this pair is the minimum key in the map.
Examples
Basic usage:
#![feature(map_first_last)]
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
assert_eq!(map.first_key_value(), None);
map.insert(1, "b");
map.insert(2, "a");
assert_eq!(map.first_key_value(), Some((&1, &"b")));sourcepub fn last_key_value(&self) -> Option<(&K, &V)> where
K: Ord,
🔬 This is a nightly-only experimental API. (map_first_last)
pub fn last_key_value(&self) -> Option<(&K, &V)> where
K: Ord,
map_first_last)Returns the last key-value pair in the map. The key in this pair is the maximum key in the map.
Examples
Basic usage:
#![feature(map_first_last)]
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "b");
map.insert(2, "a");
assert_eq!(map.last_key_value(), Some((&2, &"a")));1.0.0 · sourcepub fn contains_key<Q>(&self, key: &Q) -> bool where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
pub fn contains_key<Q>(&self, key: &Q) -> bool where
K: Borrow<Q> + Ord,
Q: Ord + ?Sized,
Returns true if the map contains a value for the specified key.
The key may be any borrowed form of the map’s key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(1, "a");
assert_eq!(map.contains_key(&1), true);
assert_eq!(map.contains_key(&2), false);1.17.0 · sourcepub fn range<T, R>(&self, range: R) -> Range<'_, K, V> where
T: Ord + ?Sized,
K: Borrow<T> + Ord,
R: RangeBounds<T>,
pub fn range<T, R>(&self, range: R) -> Range<'_, K, V> where
T: Ord + ?Sized,
K: Borrow<T> + Ord,
R: RangeBounds<T>,
Constructs a double-ended iterator over a sub-range of elements in the map.
The simplest way is to use the range syntax min..max, thus range(min..max) will
yield elements from min (inclusive) to max (exclusive).
The range may also be entered as (Bound<T>, Bound<T>), so for example
range((Excluded(4), Included(10))) will yield a left-exclusive, right-inclusive
range from 4 to 10.
Panics
Panics if range start > end.
Panics if range start == end and both bounds are Excluded.
Examples
Basic usage:
use std::collections::BTreeMap;
use std::ops::Bound::Included;
let mut map = BTreeMap::new();
map.insert(3, "a");
map.insert(5, "b");
map.insert(8, "c");
for (&key, &value) in map.range((Included(&4), Included(&8))) {
println!("{key}: {value}");
}
assert_eq!(Some((&5, &"b")), map.range(4..).next());1.0.0 · sourcepub fn iter(&self) -> Iter<'_, K, V>
pub fn iter(&self) -> Iter<'_, K, V>
Gets an iterator over the entries of the map, sorted by key.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut map = BTreeMap::new();
map.insert(3, "c");
map.insert(2, "b");
map.insert(1, "a");
for (key, value) in map.iter() {
println!("{key}: {value}");
}
let (first_key, first_value) = map.iter().next().unwrap();
assert_eq!((*first_key, *first_value), (1, "a"));1.0.0 · sourcepub fn keys(&self) -> Keys<'_, K, V>
pub fn keys(&self) -> Keys<'_, K, V>
Gets an iterator over the keys of the map, in sorted order.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut a = BTreeMap::new();
a.insert(2, "b");
a.insert(1, "a");
let keys: Vec<_> = a.keys().cloned().collect();
assert_eq!(keys, [1, 2]);1.0.0 · sourcepub fn values(&self) -> Values<'_, K, V>
pub fn values(&self) -> Values<'_, K, V>
Gets an iterator over the values of the map, in order by key.
Examples
Basic usage:
use std::collections::BTreeMap;
let mut a = BTreeMap::new();
a.insert(1, "hello");
a.insert(2, "goodbye");
let values: Vec<&str> = a.values().cloned().collect();
assert_eq!(values, ["hello", "goodbye"]);Trait Implementations
sourceimpl Clone for QueryString
impl Clone for QueryString
sourcefn clone(&self) -> QueryString
fn clone(&self) -> QueryString
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for QueryString
impl Debug for QueryString
sourceimpl Default for QueryString
impl Default for QueryString
sourcefn default() -> QueryString
fn default() -> QueryString
Returns the “default value” for a type. Read more
sourceimpl Deref for QueryString
impl Deref for QueryString
sourceimpl<K, V> FromIterator<(K, V)> for QueryString where
K: Into<Vec<u8>>,
V: Into<Vec<u8>>,
impl<K, V> FromIterator<(K, V)> for QueryString where
K: Into<Vec<u8>>,
V: Into<Vec<u8>>,
sourcefn from_iter<T: IntoIterator<Item = (K, V)>>(pairs: T) -> Self
fn from_iter<T: IntoIterator<Item = (K, V)>>(pairs: T) -> Self
Creates a value from an iterator. Read more
sourceimpl IntoIterator for QueryString
impl IntoIterator for QueryString
Auto Trait Implementations
impl RefUnwindSafe for QueryString
impl Send for QueryString
impl Sync for QueryString
impl Unpin for QueryString
impl UnwindSafe for QueryString
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more