[][src]Enum fbthrift::compact_protocol::CompactProtocol

pub enum CompactProtocol<F = Bytes> {
    __Phantom(CompactProtocol<F>),
    CompactProtocol,
}

An efficient, dense encoding that uses variable-length integers and squeezes data into unused bits wherever possible.

let protocol = CompactProtocol;
let transport = HttpClient::new(ENDPOINT)?;
let client = BuckGraphService::new(protocol, transport);

The type parameter is the Framing expected by the transport on which this protocol is operating. Usually by convention the transport itself serves as the Framing impl, so for example in the case of HttpClient above, the compiler has inferred F = HttpClient.

Where the compiler reports that a Framing can't be inferred, one can be specified explicitly:

let protocol = CompactProtocol::<SRHeaderTransport>;

Variants

__Phantom(CompactProtocol<F>)
CompactProtocol

Trait Implementations

impl<F> Clone for CompactProtocol<F>[src]

impl<F> Copy for CompactProtocol<F>[src]

impl<F> Protocol for CompactProtocol<F> where
    F: Framing + 'static, 
[src]

type Frame = F

Type of the framing implementation

type Sizer = CompactProtocolSerializer<SizeCounter>

Compute the size of a frame for a given protocol. This can be exact or too large, but must not be too small. Read more

type Serializer = CompactProtocolSerializer<F::EncBuf>

Serialize into a buffer. The buffer is allocated with the size computed by Sizer, so it must be large enough. Read more

type Deserializer = CompactProtocolDeserializer<F::DecBuf>

Set up a deserializer from a frame's buffer.

Auto Trait Implementations

impl<F> RefUnwindSafe for CompactProtocol<F> where
    F: RefUnwindSafe
[src]

impl<F> Send for CompactProtocol<F> where
    F: Send
[src]

impl<F> Sync for CompactProtocol<F> where
    F: Sync
[src]

impl<F> Unpin for CompactProtocol<F> where
    F: Unpin
[src]

impl<F> UnwindSafe for CompactProtocol<F> where
    F: UnwindSafe
[src]

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> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.