DataRef

Trait DataRef 

Source
pub trait DataRef<'a, D>:
    Copy
    + Debug
    + Send
    + Sync
where D: Data + ?Sized,
{ // Required method fn decode(buf: &'a [u8]) -> Result<(usize, Self), DecodeError> where Self: Sized; // Provided method fn decode_length_delimited( src: &'a [u8], ) -> Result<(usize, Self), DecodeError> where Self: Sized { ... } }
Expand description

The reference type of the data.

Required Methods§

Source

fn decode(buf: &'a [u8]) -> Result<(usize, Self), DecodeError>
where Self: Sized,

Decodes the reference type from a buffer.

The entire buffer will be consumed.

Provided Methods§

Source

fn decode_length_delimited(src: &'a [u8]) -> Result<(usize, Self), DecodeError>
where Self: Sized,

Decodes a length-delimited reference instance of the message from the buffer.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a> DataRef<'a, IpAddr> for IpAddr

Source§

impl<'a> DataRef<'a, SocketAddr> for SocketAddr

Source§

impl<'a> DataRef<'a, bool> for bool

Source§

fn decode(src: &'a [u8]) -> Result<(usize, bool), DecodeError>

Source§

impl<'a> DataRef<'a, char> for char

Source§

fn decode(src: &'a [u8]) -> Result<(usize, char), DecodeError>

Source§

impl<'a> DataRef<'a, f32> for f32

Source§

fn decode(src: &'a [u8]) -> Result<(usize, f32), DecodeError>

Source§

impl<'a> DataRef<'a, f64> for f64

Source§

fn decode(src: &'a [u8]) -> Result<(usize, f64), DecodeError>

Source§

impl<'a> DataRef<'a, i8> for i8

Source§

fn decode(src: &'a [u8]) -> Result<(usize, i8), DecodeError>

Source§

impl<'a> DataRef<'a, i16> for i16

Source§

fn decode(src: &'a [u8]) -> Result<(usize, i16), DecodeError>

Source§

impl<'a> DataRef<'a, i32> for i32

Source§

fn decode(src: &'a [u8]) -> Result<(usize, i32), DecodeError>

Source§

impl<'a> DataRef<'a, i64> for i64

Source§

fn decode(src: &'a [u8]) -> Result<(usize, i64), DecodeError>

Source§

impl<'a> DataRef<'a, i128> for i128

Source§

fn decode(src: &'a [u8]) -> Result<(usize, i128), DecodeError>

Source§

impl<'a> DataRef<'a, u8> for u8

Source§

fn decode(src: &'a [u8]) -> Result<(usize, u8), DecodeError>

Source§

impl<'a> DataRef<'a, u16> for u16

Source§

fn decode(src: &'a [u8]) -> Result<(usize, u16), DecodeError>

Source§

impl<'a> DataRef<'a, u32> for u32

Source§

fn decode(src: &'a [u8]) -> Result<(usize, u32), DecodeError>

Source§

impl<'a> DataRef<'a, u64> for u64

Source§

fn decode(src: &'a [u8]) -> Result<(usize, u64), DecodeError>

Source§

impl<'a> DataRef<'a, u128> for u128

Source§

fn decode(src: &'a [u8]) -> Result<(usize, u128), DecodeError>

Source§

impl<'a> DataRef<'a, Label> for &'a str

Source§

fn decode(buf: &'a [u8]) -> Result<(usize, &'a str), DecodeError>
where &'a str: Sized,

Source§

impl<'a> DataRef<'a, Bytes> for &'a [u8]

Source§

fn decode(buf: &'a [u8]) -> Result<(usize, &'a [u8]), DecodeError>

Source§

impl<'a> DataRef<'a, Box<str>> for &'a str

Source§

fn decode(src: &'a [u8]) -> Result<(usize, &'a str), DecodeError>

Source§

impl<'a> DataRef<'a, Box<[u8]>> for &'a [u8]

Source§

fn decode(buf: &'a [u8]) -> Result<(usize, &'a [u8]), DecodeError>

Source§

impl<'a> DataRef<'a, String> for &'a str

Source§

fn decode(src: &'a [u8]) -> Result<(usize, &'a str), DecodeError>

Source§

impl<'a> DataRef<'a, Arc<str>> for &'a str

Source§

fn decode(src: &'a [u8]) -> Result<(usize, &'a str), DecodeError>

Source§

impl<'a> DataRef<'a, Arc<[u8]>> for &'a [u8]

Source§

fn decode(buf: &'a [u8]) -> Result<(usize, &'a [u8]), DecodeError>

Source§

impl<'a> DataRef<'a, Vec<u8>> for &'a [u8]

Source§

fn decode(buf: &'a [u8]) -> Result<(usize, &'a [u8]), DecodeError>

Source§

impl<'a> DataRef<'a, Ipv4Addr> for Ipv4Addr

Source§

impl<'a> DataRef<'a, Ipv6Addr> for Ipv6Addr

Source§

impl<'a> DataRef<'a, SocketAddrV4> for SocketAddrV4

Source§

impl<'a> DataRef<'a, SocketAddrV6> for SocketAddrV6

Source§

impl<'a> DataRef<'a, Duration> for Duration

Source§

impl<'a> DataRef<'a, Meta> for &'a [u8]

Source§

fn decode(src: &'a [u8]) -> Result<(usize, &'a [u8]), DecodeError>

Source§

impl<'a> DataRef<'a, Arc<str>> for &'a str

Source§

fn decode(src: &'a [u8]) -> Result<(usize, &'a str), DecodeError>

Source§

impl<'a> DataRef<'a, SmolStr> for &'a str

Source§

fn decode(src: &'a [u8]) -> Result<(usize, &'a str), DecodeError>

Source§

impl<'a, A, B> DataRef<'a, (A, B)> for (<A as Data>::Ref<'a>, <B as Data>::Ref<'a>)
where A: Data, B: Data,

Source§

fn decode( buf: &'a [u8], ) -> Result<(usize, (<A as Data>::Ref<'a>, <B as Data>::Ref<'a>)), DecodeError>
where (<A as Data>::Ref<'a>, <B as Data>::Ref<'a>): Sized,

Source§

impl<'a, const N: usize> DataRef<'a, [u8; N]> for [u8; N]

Source§

fn decode(src: &'a [u8]) -> Result<(usize, [u8; N]), DecodeError>

Implementors§

Source§

impl DataRef<'_, KeyRequestMessage> for KeyRequestMessage

Source§

impl<'a> DataRef<'a, DelegateVersion> for serf::types::DelegateVersion

Source§

impl<'a> DataRef<'a, DelegateVersion> for serf::types::MemberlistDelegateVersion

Source§

impl<'a> DataRef<'a, ProtocolVersion> for serf::types::MemberlistProtocolVersion

Source§

impl<'a> DataRef<'a, ProtocolVersion> for serf::types::ProtocolVersion

Source§

impl<'a> DataRef<'a, SecretKey> for SecretKey

Source§

impl<'a> DataRef<'a, Domain<SmolStr>> for Domain<Buffer>

Source§

impl<'a> DataRef<'a, HostAddr<SmolStr>> for HostAddr<Buffer>

Source§

impl<'a> DataRef<'a, Coordinate> for CoordinateRef<'a>

Source§

impl<'a> DataRef<'a, Ack> for AckRef<'a>

Source§

impl<'a> DataRef<'a, Nack> for Nack

Source§

impl<'a> DataRef<'a, ErrorResponse> for ErrorResponseRef<'a>

Source§

impl<'a> DataRef<'a, KeyResponseMessage> for KeyResponseMessageRef<'a>

Source§

impl<'a> DataRef<'a, LamportTime> for LamportTime

Source§

impl<'a> DataRef<'a, Tags> for TagsRef<'a>

Source§

impl<'a, A, R> DataRef<'a, MaybeResolvedAddress<A, R>> for MaybeResolvedAddress<<A as Data>::Ref<'a>, <R as Data>::Ref<'a>>
where A: Data, R: Data,

Source§

impl<'a, I> DataRef<'a, Dead<I>> for Dead<<I as Data>::Ref<'a>>
where I: Data,

Source§

impl<'a, I> DataRef<'a, Suspect<I>> for Suspect<<I as Data>::Ref<'a>>
where I: Data,

Source§

impl<'a, I, A> DataRef<'a, Message<I, A>> for MessageRef<'a, <I as Data>::Ref<'a>, <A as Data>::Ref<'a>>
where I: Data, A: Data,

Source§

impl<'a, I, A> DataRef<'a, Node<I, A>> for Node<<I as Data>::Ref<'a>, <A as Data>::Ref<'a>>
where I: Data, A: Data,

Source§

impl<'a, I, A> DataRef<'a, Alive<I, A>> for AliveRef<'a, <I as Data>::Ref<'a>, <A as Data>::Ref<'a>>
where I: Data, A: Data,

Source§

impl<'a, I, A> DataRef<'a, IndirectPing<I, A>> for IndirectPing<<I as Data>::Ref<'a>, <A as Data>::Ref<'a>>
where I: Data, A: Data,

Source§

impl<'a, I, A> DataRef<'a, Ping<I, A>> for Ping<<I as Data>::Ref<'a>, <A as Data>::Ref<'a>>
where I: Data, A: Data,

Source§

impl<'a, I, A> DataRef<'a, PushNodeState<I, A>> for PushNodeStateRef<'a, <I as Data>::Ref<'a>, <A as Data>::Ref<'a>>
where I: Data, A: Data,

Source§

impl<'a, I, A> DataRef<'a, PushPull<I, A>> for PushPullRef<'a, <I as Data>::Ref<'a>, <A as Data>::Ref<'a>>
where I: Data, A: Data,

Source§

impl<'a, I, A> DataRef<'a, Member<I, A>> for MemberRef<'a, <I as Data>::Ref<'a>, <A as Data>::Ref<'a>>
where I: Data, A: Data,

Source§

impl<'a, T> DataRef<'a, Box<T>> for <T as Data>::Ref<'a>
where T: Data,

Source§

impl<'a, T> DataRef<'a, Arc<T>> for <T as Data>::Ref<'a>
where T: Data,

Source§

impl<'a, T> DataRef<'a, Arc<T>> for <T as Data>::Ref<'a>
where T: Data,

Source§

impl<'a, const N: usize> DataRef<'a, NodeId<N>> for NodeIdRef<'a, N>