pub struct MdnsHandle { /* private fields */ }Implementations§
Source§impl MdnsHandle
impl MdnsHandle
pub fn core(&self) -> Result<Arc<MdnsCore>, KoiError>
pub async fn browse( &self, service_type: &str, ) -> Result<KoiBrowseHandle, KoiError>
Sourcepub async fn discover(&self, service_type: &str) -> Result<Vec<Peer>, KoiError>
pub async fn discover(&self, service_type: &str) -> Result<Vec<Peer>, KoiError>
Discover peers of service_type, each enriched with its advertised trust
posture, mesh anchor, and identity expiry (ADR-020 §8) — the fleet-wide
trust-legibility primitive. A snapshot collected over
DEFAULT_DISCOVER_WINDOW; for a custom window use
discover_for.
The posture each peer carries is an untrusted hint (ADR-016 §2);
certmesh().verify(..) / mTLS adjudicates actual trust. Works in both
embedded and remote mode (it layers on browse).
Sourcepub async fn discover_for(
&self,
service_type: &str,
window: Duration,
) -> Result<Vec<Peer>, KoiError>
pub async fn discover_for( &self, service_type: &str, window: Duration, ) -> Result<Vec<Peer>, KoiError>
Like discover with an explicit collection window.
pub async fn resolve(&self, name: &str) -> Result<ServiceRecord, KoiError>
pub fn register( &self, payload: RegisterPayload, ) -> Result<RegistrationResult, KoiError>
pub fn unregister(&self, id: &str) -> Result<(), KoiError>
Sourcepub fn subscribe(&self) -> Result<Receiver<MdnsEvent>, KoiError>
pub fn subscribe(&self) -> Result<Receiver<MdnsEvent>, KoiError>
Subscribe to the live mDNS lifecycle-event stream (Found / Resolved / Removed).
Available only in embedded mode, where there is a local MdnsCore to subscribe
to. In client (remote) mode there is no all-types lifecycle stream to forward —
the daemon’s /v1/mdns/subscribe requires a service type — so this returns
KoiError::RemoteUnsupported. For a remote event stream, use
MdnsHandle::browse with a specific service type (it forwards the daemon’s SSE).
Previously this silently returned a dead receiver in remote mode (it yielded nothing, forever); the typed error makes the limitation visible instead of swallowing it.
pub fn emit_event(&self, event: KoiEvent)
Auto Trait Implementations§
impl !RefUnwindSafe for MdnsHandle
impl !UnwindSafe for MdnsHandle
impl Freeze for MdnsHandle
impl Send for MdnsHandle
impl Sync for MdnsHandle
impl Unpin for MdnsHandle
impl UnsafeUnpin for MdnsHandle
Blanket Implementations§
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<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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