pub struct TopicTracker { /* private fields */ }Implementations§
Source§impl TopicTracker
impl TopicTracker
pub fn new( gossip: &Gossip, endpoint: &Endpoint, relay_addr: Option<CustomAddr>, ) -> Self
Sourcepub async fn announce(&self, namespace_id: NamespaceId) -> Result<()>
pub async fn announce(&self, namespace_id: NamespaceId) -> Result<()>
§Errors
Returns an error if joining the topic fails.
Sourcepub async fn find_peers(
&self,
namespace_id: NamespaceId,
) -> Result<Vec<EndpointAddr>>
pub async fn find_peers( &self, namespace_id: NamespaceId, ) -> Result<Vec<EndpointAddr>>
Return the peers discovered for a namespace so far, with any addresses that have been resolved via the DHT presence records. This is deliberately non-blocking: the DHT reads happen in the background loop, so this call never stalls a daemon task on network latency.
§Errors
Returns an error if the topic cannot be joined or gossip neighbors cannot be retrieved.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for TopicTracker
impl !UnwindSafe for TopicTracker
impl Freeze for TopicTracker
impl Send for TopicTracker
impl Sync for TopicTracker
impl Unpin for TopicTracker
impl UnsafeUnpin for TopicTracker
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
Mutably borrows from an owned value. Read more
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<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> ⓘ
Converts
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> ⓘ
Converts
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