pub struct Query(/* private fields */);Expand description
Percent-encoded URL query, without the leading ?.
Implementations§
Source§impl Query
impl Query
Sourcepub fn new(src: &str) -> Result<&Query, InvalidUrl>
pub fn new(src: &str) -> Result<&Query, InvalidUrl>
Strictly validates a query: *( pchar / "/" / "?" ).
Sourcepub fn decode(&self) -> Cow<'_, str>
pub fn decode(&self) -> Cow<'_, str>
Returns the decoded query. + is decoded as space; escapes of &, =,
+ and ; are kept.
Sourcepub fn pairs(&self) -> QueryPairs<'_> ⓘ
pub fn pairs(&self) -> QueryPairs<'_> ⓘ
Returns an iterator over decoded key=value pairs.
use urly::Url;
let url = Url::from_static("/?a=1&b=x+y&a=%32&flag");
let pairs: Vec<_> = url.query().unwrap().pairs().collect();
let pairs: Vec<_> = pairs.iter().map(|(k, v)| (&**k, &**v)).collect();
assert_eq!(pairs, [("a", "1"), ("b", "x y"), ("a", "2"), ("flag", "")]);Sourcepub fn get<'a>(&'a self, key: &str) -> Option<Cow<'a, str>>
pub fn get<'a>(&'a self, key: &str) -> Option<Cow<'a, str>>
Returns the first decoded value for key.
use urly::Url;
let url = Url::from_static("/?a=1&a=2&b=%C3%BC");
let query = url.query().unwrap();
assert_eq!(query.get("a").unwrap(), "1");
assert_eq!(query.get("b").unwrap(), "ü");
assert_eq!(query.get_all("a").collect::<Vec<_>>(), ["1", "2"]);
assert!(!query.contains_key("c"));Sourcepub fn get_all<'a>(&'a self, key: &str) -> impl Iterator<Item = Cow<'a, str>>
pub fn get_all<'a>(&'a self, key: &str) -> impl Iterator<Item = Cow<'a, str>>
Returns all decoded values for key.
Sourcepub fn contains_key(&self, key: &str) -> bool
pub fn contains_key(&self, key: &str) -> bool
Returns true if the query contains key.