Skip to main content

Config

Struct Config 

Source
#[non_exhaustive]
pub struct Config { pub target_ip: Option<Ipv4Addr>, pub port: Option<u16>, pub local_ip: Option<Ipv4Addr>, pub interface: Option<String>, pub broadcast: bool, pub name: Option<String>, pub uid: Option<DeviceUid>, pub uid_path: Option<PathBuf>, }
Expand description

How a Remote finds the network.

Config::default discovers over multicast on the interface the host picks, which is the right answer on a single-homed machine and arbitrary on any other.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§target_ip: Option<Ipv4Addr>

Where to send. Unset means the multicast group, or the interface’s broadcast address when Config::broadcast is set.

§port: Option<u16>

UDP port. Unset means the default for the selected mode.

§local_ip: Option<Ipv4Addr>

Selects the interface by address.

It becomes both the multicast egress interface and the membership interface, so it decides which NIC frames leave by and which one they are accepted on. Getting it wrong on a multi-homed host is one-sided: periodic broadcasts still arrive, so discovery looks healthy while every request this client sends leaves by the wrong NIC and is never answered.

§interface: Option<String>

Selects the interface by name, taking precedence over Config::local_ip.

An interface with no address of its own - a tagged VLAN - can only be named this way, and only on Linux.

§broadcast: bool

Use broadcast rather than multicast.

§name: Option<String>

The name this client advertises. Unset means MXR Rust.

§uid: Option<DeviceUid>

This client’s identifier. Unset loads it from Config::uid_path, generating and storing one on first run.

§uid_path: Option<PathBuf>

Where the identifier is kept. Unset means .mxr-uid in the user’s home directory.

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

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 Config

Source§

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

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

impl Default for Config

Source§

fn default() -> Config

Returns the “default value” for a type. Read more

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.

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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.