Skip to main content

IfaceSelector

Enum IfaceSelector 

Source
pub enum IfaceSelector {
    Ipv4(Ipv4Addr),
    Name(String),
}
Expand description

How a user names a host interface on a command line or in an API call.

Parsed as an IPv4 literal first and taken as an operating-system interface name otherwise. The two spellings cannot collide: an interface name that parses as an IPv4 address does not exist on any platform we support.

Both spellings are needed. A Windows interface name is a GUID ({6394C55F-F630-4BC7-92D2-7AC320C73D1C}), which a user has no easy way to obtain, so IPv4 has to work; and an interface that carries no address yet can only be named, so the name has to work too. Before this existed viva-camctl accepted only the address and viva-service only the name, and a user who had discovered a camera with one tool could not stream it with the other (#109).

Variants§

§

Ipv4(Ipv4Addr)

One of the interface’s own IPv4 addresses, e.g. 169.254.105.106.

§

Name(String)

The name the operating system gives the interface, e.g. en0.

Implementations§

Source§

impl IfaceSelector

Source

pub fn resolve(&self) -> Result<Iface>

Resolve the selector against the interfaces this host reports.

Delegates to Iface::from_ipv4 or Iface::from_system; the only thing added here is the failure message, which lists what we can actually see. That listing is the point rather than a nicety: the Windows GUID a user needs is not discoverable from the error it replaces, and Iface::list is already the library’s own view of the machine (#57).

Trait Implementations§

Source§

impl Clone for IfaceSelector

Source§

fn clone(&self) -> IfaceSelector

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for IfaceSelector

Source§

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

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

impl Display for IfaceSelector

Source§

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

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

impl FromStr for IfaceSelector

Source§

type Err = Infallible

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl PartialEq for IfaceSelector

Source§

fn eq(&self, other: &IfaceSelector) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for IfaceSelector

Source§

impl StructuralPartialEq for IfaceSelector

Auto Trait Implementations§

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<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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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