pub struct QString { /* private fields */ }Expand description
A query string. Holds a list of (key,value).
Examples
Parameters can be get by their names.
let qs = qstring::QString::from("?foo=bar%20baz");
let foo = qs.get("foo").unwrap();
assert_eq!(foo, "bar baz");Parameters not found are None.
let qs = qstring::QString::from("?foo=bar");
let foo = &qs.get("panda");
assert!(foo.is_none());The query string can be assembled from pairs.
let qs = qstring::QString::new(vec![
("foo", "bar baz"),
("panda", "true"),
]);
assert_eq!(format!("{}", qs), "foo=bar%20baz&panda=true");Implementations§
Source§impl QString
impl QString
Sourcepub fn new<S, T>(params: Vec<(S, T)>) -> QString
pub fn new<S, T>(params: Vec<(S, T)>) -> QString
Constructs a QString from a list of pairs.
let qs = qstring::QString::new(vec![
("foo", "bar baz"),
("panda", "true"),
]);
assert_eq!(format!("{}", qs), "foo=bar%20baz&panda=true");Sourcepub fn has(&self, name: &str) -> bool
pub fn has(&self, name: &str) -> bool
Tells if a query parameter is present.
let qs = qstring::QString::from("?foo");
assert!(qs.has("foo"));
assert!(qs.get("foo").is_some());Sourcepub fn get<'a>(&'a self, name: &str) -> Option<&'a str>
pub fn get<'a>(&'a self, name: &str) -> Option<&'a str>
Get a query parameter by name.
Empty query parameters (?foo) return ""
let qs = qstring::QString::from("?foo=bar");
let foo = qs.get("foo");
assert_eq!(foo, Some("bar"));Sourcepub fn into_pairs(self) -> Vec<(String, String)>
pub fn into_pairs(self) -> Vec<(String, String)>
Converts the QString to list of pairs.
let qs = qstring::QString::from("?foo=bar&baz=boo");
let ps = qs.into_pairs();
assert_eq!(ps, vec![
("foo".to_string(), "bar".to_string()),
("baz".to_string(), "boo".to_string()),
]);Sourcepub fn to_pairs(&self) -> Vec<(&str, &str)>
pub fn to_pairs(&self) -> Vec<(&str, &str)>
Represent the QString as a list of pairs.
let qs = qstring::QString::from("?foo=bar&baz=boo");
let ps = qs.to_pairs();
assert_eq!(ps, vec![
("foo", "bar"),
("baz", "boo"),
]);Sourcepub fn add_pair<S, T>(&mut self, pair: (S, T))
pub fn add_pair<S, T>(&mut self, pair: (S, T))
Adds another query parameter pair.
let mut qs = qstring::QString::from("?foo=bar&baz=boo");
qs.add_pair(("panda", "bear"));
assert_eq!(qs.to_string(), "foo=bar&baz=boo&panda=bear");Trait Implementations§
Source§impl<'a> From<&'a str> for QString
impl<'a> From<&'a str> for QString
Source§fn from(origin: &str) -> Self
fn from(origin: &str) -> Self
Constructs a new QString by parsing a query string part of the URL.
Can start with ? or not, either works.
Examples
let qs = qstring::QString::from("?foo=bar");
let v: Vec<(String, String)> = qs.into_pairs();
assert_eq!(v, vec![("foo".to_string(), "bar".to_string())]);Source§impl IntoIterator for QString
impl IntoIterator for QString
impl StructuralPartialEq for QString
Auto Trait Implementations§
impl Freeze for QString
impl RefUnwindSafe for QString
impl Send for QString
impl Sync for QString
impl Unpin for QString
impl UnwindSafe for QString
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more