pub struct RepeatingRegistry { /* private fields */ }Expand description
The registry sweep as a declared pair of queriers (#37) — for callers
that re-run the sweep (--watch topic list, doctor’s second pass, a GUI
refresh). One-shot callers keep fleet_registry.
Two queriers, not one: the wildcard-producer fan-out plus @catalog by
name (a * never matches a verbatim origin, D4 — the two cannot
double-count; same reasoning as fleet_registry).
Implementations§
Source§impl RepeatingRegistry
impl RepeatingRegistry
pub async fn declare(fleet: &Fleet<'_>, timeout: Duration) -> Result<Self>
Sourcepub async fn fetch(&self) -> Result<Vec<(RegistrySlice, String)>>
pub async fn fetch(&self) -> Result<Vec<(RegistrySlice, String)>>
One sweep: every parsed slice with its raw TOML.
Drops the answering origin. fetch_by_origin
is the same sweep keeping it, and is what a caller asking which host
wants (#385).
Sourcepub async fn fetch_by_origin(&self) -> Result<Vec<ServedSlice>>
pub async fn fetch_by_origin(&self) -> Result<Vec<ServedSlice>>
One sweep, attributed: every parsed slice with the origin that served it and its raw TOML (#385).
A reply that does not parse is logged and skipped, never fatal — one malformed producer must not blind the tool to every other producer’s slice. Nothing is deduplicated: a fleet mid-rollout serving three versions of one producer yields three entries, and that disagreement is the finding.
Sourcepub async fn undeclare(self) -> Result<()>
pub async fn undeclare(self) -> Result<()>
Undeclare both queriers, acknowledged.
Both, even when the first refuses (#346): the wildcard sweep and the
@catalog ask are one teardown, and leaving the second declared
because the first would not go is the half-torn-down state
crate::Monitor::shutdown refuses. Failures are reported together.
Auto Trait Implementations§
impl !Freeze for RepeatingRegistry
impl !RefUnwindSafe for RepeatingRegistry
impl !UnwindSafe for RepeatingRegistry
impl Send for RepeatingRegistry
impl Sync for RepeatingRegistry
impl Unpin for RepeatingRegistry
impl UnsafeUnpin for RepeatingRegistry
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> 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