iroh_net::dns::node_info

Struct TxtAttrs

Source
pub struct TxtAttrs<T> { /* private fields */ }
Expand description

Attributes parsed from IROH_TXT_NAME TXT records.

This struct is generic over the key type. When using with String, this will parse all attributes. Can also be used with an enum, if it implements FromStr and Display.

Implementations§

Source§

impl<T: FromStr + Display + Hash + Ord> TxtAttrs<T>

Source

pub fn from_parts( node_id: NodeId, pairs: impl Iterator<Item = (T, String)>, ) -> Self

Creates TxtAttrs from a node id and an iterator of key-value pairs.

Source

pub fn from_strings( node_id: NodeId, strings: impl Iterator<Item = String>, ) -> Result<Self>

Creates TxtAttrs from a node id and an iterator of “{key}={value}” strings.

Source

pub async fn lookup_by_id( resolver: &TokioAsyncResolver, node_id: &NodeId, origin: &str, ) -> Result<Self>

Looks up attributes by NodeId and origin domain.

Source

pub async fn lookup_by_name( resolver: &TokioAsyncResolver, name: &str, ) -> Result<Self>

Looks up attributes by DNS name.

Source

pub fn attrs(&self) -> &BTreeMap<T, Vec<String>>

Returns the parsed attributes.

Source

pub fn node_id(&self) -> NodeId

Returns the node id.

Source

pub fn from_pkarr_signed_packet(packet: &SignedPacket) -> Result<Self>

Source

pub fn from_hickory_records(records: &[Record]) -> Result<Self>

Parses a set of DNS resource records.

Source

pub fn to_hickory_records( &self, origin: &str, ttl: u32, ) -> Result<impl Iterator<Item = Record> + '_>

Converts to a list of hickory_proto::rr::Record resource records.

Source

pub fn to_pkarr_signed_packet( &self, secret_key: &SecretKey, ttl: u32, ) -> Result<SignedPacket>

Creates a pkarr::SignedPacket

This constructs a DNS packet and signs it with a SecretKey.

Trait Implementations§

Source§

impl<T: Debug> Debug for TxtAttrs<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<&NodeInfo> for TxtAttrs<IrohAttr>

Source§

fn from(info: &NodeInfo) -> Self

Converts to this type from the input type.
Source§

impl From<&TxtAttrs<IrohAttr>> for NodeInfo

Source§

fn from(attrs: &TxtAttrs<IrohAttr>) -> Self

Converts to this type from the input type.
Source§

impl From<TxtAttrs<IrohAttr>> for NodeInfo

Source§

fn from(attrs: TxtAttrs<IrohAttr>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<T> Freeze for TxtAttrs<T>

§

impl<T> RefUnwindSafe for TxtAttrs<T>
where T: RefUnwindSafe,

§

impl<T> Send for TxtAttrs<T>
where T: Send,

§

impl<T> Sync for TxtAttrs<T>
where T: Sync,

§

impl<T> Unpin for TxtAttrs<T>

§

impl<T> UnwindSafe for TxtAttrs<T>
where T: RefUnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T