Struct UdpServer

Source
pub struct UdpServer { /* private fields */ }
Expand description

The UdpServer struct in Rust contains a UDP socket and an Arc-wrapped notification mechanism.

§Properties:

  • socket: The socket property in the UdpServer struct represents a UDP socket that the server uses to send and receive data over the network.
  • notify: The notify property in the UdpServer struct is of type Arc<Notify>. Arc stands for “atomic reference counting” and is a thread-safe reference-counting pointer. Notify is a synchronization primitive that allows threads to wait until a condition is satisfied.

Implementations§

Source§

impl UdpServer

Source

pub async fn bind(addr: &str) -> Result<Self, Box<dyn Error>>

The function bind creates a UDP server bound to a specified address and returns a result with the server instance or an error.

§Arguments:
  • addr: The addr parameter in the bind function is a reference to a string that represents the address to bind the UDP socket to. This address typically includes the IP address and port number on which the socket will listen for incoming connections.
§Returns:

The bind function is returning a Result containing an instance of UdpServer if the binding operation is successful. The UdpServer struct contains a UdpSocket and an Arc<Notify> instance.

Source

pub async fn run(self: Arc<Self>) -> Result<(), Box<dyn Error>>

The function run is an asynchronous method in Rust that continuously listens for incoming data on a UDP socket, processes the data, and echoes it back to the sender while also checking for a shutdown signal.

§Arguments:
  • ``: The code you provided is a Rust asynchronous function that runs a UDP server using Tokio. Here’s a breakdown of the key components:
§Returns:

The run function returns a Result with an Ok(()) value if the UDP server is shut down successfully.

Source

pub async fn shutdown(&self)

The shutdown function in Rust asynchronously notifies the server to shut down.

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> 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. 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.
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,