pub struct BlobProbePrefix(/* private fields */);Expand description
A *-origin @blob prefix, for probing only (RFC 07 §2.5).
Deliberately a distinct type from Key, and deliberately not
convertible into one: a fleet prefix and a concrete prefix are
interchangeable as strings, which is exactly how a probe turns into a
wildcard-origin bulk fetch — every holder ships the full payload and
Zenoh cannot cancel remote replies in flight, so N holders cost N× the
bytes (RFC 07 §2.5, §3). Keeping the types apart makes that mistake fail
to compile rather than fail on a link.
The sanctioned shape is: probe across origins with a tiny reply
(have availability, or a manifest), pick one origin, then fetch from
that origin’s concrete V1Context::blob_prefix.
Implementations§
Source§impl BlobProbePrefix
impl BlobProbePrefix
Sourcepub fn store_have(algo: impl AsRef<str>) -> Self
pub fn store_have(algo: impl AsRef<str>) -> Self
The Tier-2 store probe: v1/*/@blob/store/<algo>/have
(RFC 07 §2.4/§2.5, v1.17).
The request carries a list of content addresses; each holder answers
a bitfield over exactly that list, so the reply is O(request) and
§3’s cost gate is satisfied by construction — which is what makes
the wildcard origin legitimate here. have is a reserved Tier-2
token and never a valid content address (§2.4). algo is slugged at
the boundary like every generated variable.
Sourcepub fn tree_have(root: &ContentHash) -> Self
pub fn tree_have(root: &ContentHash) -> Self
The Tier-2 tree probe: v1/*/@blob/tree/<root>/have
(RFC 07 §2.4/§2.5, v1.17).
Each holder answers has-index plus chunks present / total — a flag
and two counters, O(request) whatever the tree’s size. The <root>
is a validated grammar::ContentHash, so the revoked
caller-chosen name (§2.3) has no spelling here either.
Trait Implementations§
Source§impl Clone for BlobProbePrefix
impl Clone for BlobProbePrefix
Source§impl Debug for BlobProbePrefix
impl Debug for BlobProbePrefix
Source§impl Display for BlobProbePrefix
impl Display for BlobProbePrefix
impl Eq for BlobProbePrefix
Source§impl Hash for BlobProbePrefix
impl Hash for BlobProbePrefix
Source§impl PartialEq for BlobProbePrefix
impl PartialEq for BlobProbePrefix
impl StructuralPartialEq for BlobProbePrefix
Auto Trait Implementations§
impl Freeze for BlobProbePrefix
impl RefUnwindSafe for BlobProbePrefix
impl Send for BlobProbePrefix
impl Sync for BlobProbePrefix
impl Unpin for BlobProbePrefix
impl UnsafeUnpin for BlobProbePrefix
impl UnwindSafe for BlobProbePrefix
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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