Enum toad_msg::WhenOptionChanges
source · [−]pub enum WhenOptionChanges {
ResponseChanges,
ResponseDoesNotChange,
}
Expand description
Proxy Unsafe or Safe-to-Forward and NoCacheKey
generated from RFC7252 section 5.4.2
In addition to an option being marked as critical or elective, options are also classified based on how a proxy is to deal with the option if it does not recognize it. For this purpose, an option can either be considered Unsafe to forward (UnSafe is set) or Safe-to- Forward (UnSafe is clear).
In addition, for an option that is marked Safe-to-Forward, the option number indicates whether or not it is intended to be part of the Cache-Key (Section 5.6) in a request. If some of the NoCacheKey bits are 0, it is; if all NoCacheKey bits are 1, it is not (see Section 5.4.6).
Note: The Cache-Key indication is relevant only for proxies that do not implement the given option as a request option and instead rely on the Unsafe/Safe-to-Forward indication only. For example, for ETag, actually using the request option as a part of the Cache-Key is grossly inefficient, but it is the best thing one can do if ETag is not implemented by a proxy, as the response is going to differ based on the presence of the request option. A more useful proxy that does implement the ETag request option is not using ETag as a part of the Cache-Key.
NoCacheKey is indicated in three bits so that only one out of eight codepoints is qualified as NoCacheKey, leaving seven out of eight codepoints for what appears to be the more likely case.
Proxy behavior with regard to these classes is defined in Section 5.7.
Variants
ResponseChanges
If this option is safe to forward, but unknown to a proxy, it should be included in the proxy’s cache key for this message.
Corresponds to the option being not “NoCacheKey” in strict CoAP terms
ResponseDoesNotChange
If this option is safe to forward, but unknown to a proxy, it should not be included in the proxy’s cache key for this message, and different values for this option should yield the cached response.
Corresponds to the option being “NoCacheKey” in strict CoAP terms
Trait Implementations
sourceimpl Clone for WhenOptionChanges
impl Clone for WhenOptionChanges
sourcefn clone(&self) -> WhenOptionChanges
fn clone(&self) -> WhenOptionChanges
1.0.0 · sourceconst fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for WhenOptionChanges
impl Debug for WhenOptionChanges
sourceimpl Ord for WhenOptionChanges
impl Ord for WhenOptionChanges
sourcefn cmp(&self, other: &WhenOptionChanges) -> Ordering
fn cmp(&self, other: &WhenOptionChanges) -> Ordering
1.21.0 · sourceconst fn max(self, other: Self) -> Self
const fn max(self, other: Self) -> Self
1.21.0 · sourceconst fn min(self, other: Self) -> Self
const fn min(self, other: Self) -> Self
1.50.0 · sourceconst fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: PartialOrd<Self>,
const fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: PartialOrd<Self>,
sourceimpl PartialEq<WhenOptionChanges> for WhenOptionChanges
impl PartialEq<WhenOptionChanges> for WhenOptionChanges
sourcefn eq(&self, other: &WhenOptionChanges) -> bool
fn eq(&self, other: &WhenOptionChanges) -> bool
sourceimpl PartialOrd<WhenOptionChanges> for WhenOptionChanges
impl PartialOrd<WhenOptionChanges> for WhenOptionChanges
sourcefn partial_cmp(&self, other: &WhenOptionChanges) -> Option<Ordering>
fn partial_cmp(&self, other: &WhenOptionChanges) -> Option<Ordering>
1.0.0 · sourceconst fn le(&self, other: &Rhs) -> bool
const fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more