Struct Query
pub struct Query { /* private fields */ }net only.Expand description
Owned query component. Cheaply mutable in-place via the
QueryMut RAII guard.
Default produces an empty query (zero bytes — distinct from
“no query”; the distinction is owned by super::Uri::query /
super::Uri::set_query). Display writes the raw on-wire
bytes (no leading ?). Hash / PartialOrd / Ord are bytewise
— queries are case-sensitive and pct-encoding-preserving per RFC
3986 (§3.4 leaves application-specific interpretation to the
receiver).
Implementations§
§impl Query
impl Query
pub fn as_raw_str(&self) -> &str
pub fn as_raw_str(&self) -> &str
Returns the raw query as a &str (no percent-decoding).
Parser-validated UTF-8.
pub fn as_decoded_str(&self) -> Cow<'_, str>
pub fn as_decoded_str(&self) -> Cow<'_, str>
Percent-decoded query string. Cow::Borrowed when no %XX
escapes are present; Cow::Owned otherwise. UTF-8 errors fall
back to U+FFFD (matches curl, browsers).
pub fn view(&self) -> QueryRef<'_>
pub fn view(&self) -> QueryRef<'_>
Borrowed view. Named view (not as_ref) so it doesn’t shadow
the std AsRef trait — see the type-level docs.
pub fn pairs(&self) -> QueryPairs<'_> ⓘ
pub fn pairs(&self) -> QueryPairs<'_> ⓘ
Iterator over name[=value] pairs in the query string.
Convenience pass-through to QueryRef::pairs on the borrowed
view — see that method for the splitting / decoding contract.
pub fn deserialize<'de, T>(&'de self) -> Result<T, QueryDeserializeError>where
T: Deserialize<'de>,
pub fn deserialize<'de, T>(&'de self) -> Result<T, QueryDeserializeError>where
T: Deserialize<'de>,
Deserialize the query into T. See QueryRef::deserialize for
the encoding and borrowing contract.
Trait Implementations§
§impl FromIterator<QueryPair> for Query
impl FromIterator<QueryPair> for Query
§fn from_iter<I>(iter: I) -> Querywhere
I: IntoIterator<Item = QueryPair>,
fn from_iter<I>(iter: I) -> Querywhere
I: IntoIterator<Item = QueryPair>,
Build a Query by concatenating pre-encoded pair bytes with
& separators. No re-encoding — the pairs’ bytes are assumed to
already be in canonical on-wire form (which they are, when they
come from QueryRef::pairs, QueryMut::pop
or QueryMut::drain).
§impl<'a> FromIterator<QueryPairRef<'a>> for Query
impl<'a> FromIterator<QueryPairRef<'a>> for Query
§fn from_iter<I>(iter: I) -> Querywhere
I: IntoIterator<Item = QueryPairRef<'a>>,
fn from_iter<I>(iter: I) -> Querywhere
I: IntoIterator<Item = QueryPairRef<'a>>,
Build a Query from borrowed pair views by copying their raw
bytes. See FromIterator<QueryPair>
for the no-re-encoding contract.
§impl FromStr for Query
impl FromStr for Query
§fn from_str(s: &str) -> Result<Query, <Query as FromStr>::Err>
fn from_str(s: &str) -> Result<Query, <Query as FromStr>::Err>
Encode arbitrary input as a Query — bytes outside
pchar ∪ {'/', '?'} get percent-encoded. Infallible because
every input round-trips after encoding; str::parse users with
?-ladder code can still use this through the Result shape.
§type Err = Infallible
type Err = Infallible
§impl Ord for Query
impl Ord for Query
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
§impl PartialOrd for Query
impl PartialOrd for Query
impl Eq for Query
impl StructuralPartialEq for Query
Auto Trait Implementations§
impl Freeze for Query
impl RefUnwindSafe for Query
impl Send for Query
impl Sync for Query
impl Unpin for Query
impl UnsafeUnpin for Query
impl UnwindSafe for Query
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer