Struct fbthrift_git::binary_protocol::BinaryProtocol
source · pub struct BinaryProtocol<F = Bytes>;Expand description
A straight-forward binary format that encodes numeric values in fixed width.
ⓘ
let protocol = BinaryProtocol;
let transport = HttpClient::new(ENDPOINT)?;
let client = <dyn 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 = BinaryProtocol::<SRHeaderTransport>;Trait Implementations§
source§impl<F> Clone for BinaryProtocol<F>
impl<F> Clone for BinaryProtocol<F>
source§impl<F> Protocol for BinaryProtocol<F>where
F: Framing + 'static,
impl<F> Protocol for BinaryProtocol<F>where
F: Framing + 'static,
§type Sizer = BinaryProtocolSerializer<SizeCounter>
type Sizer = BinaryProtocolSerializer<SizeCounter>
Compute the size of a frame for a given protocol. This can be exact or too large, but
must not be too small.
§type Serializer = BinaryProtocolSerializer<<F as Framing>::EncBuf>
type Serializer = BinaryProtocolSerializer<<F as Framing>::EncBuf>
Serialize into a buffer. The buffer is allocated with the size computed by Sizer, so
it must be large enough.
§type Deserializer = BinaryProtocolDeserializer<<F as Framing>::DecBuf>
type Deserializer = BinaryProtocolDeserializer<<F as Framing>::DecBuf>
Set up a deserializer from a frame’s buffer.