[][src]Struct nannou_osc::send::Sender

pub struct Sender<M = Unconnected> { /* fields omitted */ }

A type used for sending OSC packets.

Methods

impl<M> Sender<M>[src]

pub fn local_addr(&self) -> Result<SocketAddr, Error>[src]

The socket address that this Sender's socket was created from.

impl Sender<Unconnected>[src]

pub fn bind_to<A>(addr: A) -> Result<Self, Error> where
    A: ToSocketAddrs
[src]

Creates a new Sender with the UDP socket bound to the given address. Note: this is not the target address, rather it is the address of the socket used by the Sender to send packets. Use the bind constructor instead if you would like the Sender's socket bound to the default address.

use nannou_osc::Sender;

fn main() {
    let tx = Sender::bind_to("0.0.0.0:0").expect("Couldn't bind socket to the address");
}

The returned Sender is Unconnected, meaning that it is not currently connected to a specific target address. This means that the target address will have to be specified when calling send. To connect the Sender to a specific target address, use the connect builder method which will return a Sender in the Connected mode.

pub fn bind() -> Result<Self, Error>[src]

The same as bind_to but assumes the default_sender_socket_addr_v4 socket address.

pub fn connect<A>(self, addr: A) -> Result<Sender<Connected>, Error> where
    A: ToSocketAddrs
[src]

Connects the Sender's UDP socket to the given target, remote address.

The returned Sender will only send packets to the specified address.

Returns an error if some IO error occurred.

**Panic!**s if the given addr cannot resolve to a valid SocketAddr.

use nannou_osc::Sender;

fn main() {
    let tx = Sender::bind()
        .expect("Couldn't bind to default socket")
        .connect("127.0.0.1:34254")
        .expect("Couldn't connect to socket at address");
}

pub fn send<P, A>(
    &self,
    packet: P,
    addr: A
) -> Result<usize, CommunicationError> where
    P: Into<Packet>,
    A: ToSocketAddrs
[src]

Sends the given packet on the Senders socket to the given address.

The given packet can be of any type that can be converted directly into a Packet. This includes Message, Bundle and (String, Vec<Type>) (which will be interpreted as a Message).

On success, returns the number of bytes written.

This will return a CommunicationError if:

  • The given packet fails to be encoded to bytes
  • The IP version of the local socket does not match that returned from addr or
  • The inner UdpSocket::send_to call fails.

impl Sender<Connected>[src]

pub fn remote_addr(&self) -> SocketAddr[src]

Returns the address of the socket to which the Sender is Connected.

pub fn send<P>(&self, packet: P) -> Result<usize, CommunicationError> where
    P: Into<Packet>, 
[src]

Sends the given packet on the Senders socket to the connected address.

On success, returns the number of bytes written.

This will return a CommunicationError if:

  • The given packet fails to be encoded to bytes
  • The IP version of the local socket does not match the connected socket or
  • The inner UdpSocket::send call fails.

Auto Trait Implementations

impl<M> RefUnwindSafe for Sender<M> where
    M: RefUnwindSafe

impl<M> Send for Sender<M> where
    M: Send

impl<M> Sync for Sender<M> where
    M: Sync

impl<M> Unpin for Sender<M> where
    M: Unpin

impl<M> UnwindSafe for Sender<M> where
    M: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.