pub struct Stream(_);
Expand description

Wrapper type around TCP stream for implementing FTCP-specific traits

Trait Implementations§

source§

impl Bipolar for Stream

§

type Left = Stream

First separable type (like reader)
§

type Right = Stream

Second separable type (like writer)
source§

fn join(left: Self::Left, right: Self::Right) -> Self

Reconstruct the type from the halves
source§

fn split(self) -> (Self::Left, Self::Right)

Split the type into two
source§

impl Debug for Stream

source§

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

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

impl DuplexConnection for Stream

source§

fn as_receiver(&mut self) -> &mut dyn RecvFrame

source§

fn as_sender(&mut self) -> &mut dyn SendFrame

source§

fn split(self) -> (Box<dyn RecvFrame + Send>, Box<dyn SendFrame + Send>)

source§

impl From<TcpStream> for Stream

source§

fn from(v: TcpStream) -> Self

Converts to this type from the input type.
source§

impl RecvFrame for Stream

source§

fn recv_frame(&mut self) -> Result<Vec<u8>, Error>

Receive a single frame of data structured as a byte string. The frame contains LNP framing prefix, which is used by upstream session-level protocols. Read more
source§

fn recv_raw(&mut self, len: usize) -> Result<Vec<u8>, Error>

Try to receive len number of bytes and pack them as a frame. The actual amount of bytes received may differ for some protocols, like ZMQ, so the function should be used with caution! Read more
source§

fn recv_routed(&mut self) -> Result<RoutedFrame, Error>

Receive frame like with RecvFrame::recv_frame, but only originating from the specified remote address. Read more
source§

impl SendFrame for Stream

source§

fn send_frame(&mut self, data: &[u8]) -> Result<usize, Error>

Sends a single frame of data structured as a byte string. The frame must already contain LNP framing prefix with size data. The function must check that the provided data frame length is below the limit defined with MAX_FRAME_SIZE constant if a tcp connection is used. Read more
source§

fn send_raw(&mut self, data: &[u8]) -> Result<usize, Error>

Sends a single frame of data structured as a byte string. The frame must already contain LNP framing prefix with size data. Read more
source§

fn send_routed(
&mut self,
_source: &[u8],
_route: &[u8],
_address: &[u8],
_data: &[u8]
) -> Result<usize, Error>

Sends a single frame of data structured as a byte string to a specific receiver with remote_id. Function works like RecvFrame::recv_frame and is used for the underlying protocols supporting multipeer connectivity. The frame must already contain LNP framing prefix with size data. Read more
source§

impl Stream for Stream

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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<T> for T

§

type Output = T

Should always be Self
source§

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

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
source§

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

§

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

The type returned in the event of a conversion error.
const: unstable · source§

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

Performs the conversion.
§

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

§

fn vzip(self) -> V