[−][src]Trait thrift::protocol::TOutputProtocol
Converts Thrift identifiers, primitives, containers or structs into a stream of bytes.
This trait does not deal with higher-level Thrift concepts like structs or
exceptions - only with primitives and message or container boundaries.
Write methods take an identifier (for example, TMessageIdentifier
) or a
primitive. Any or all of the fields in an identifier may be omitted when
writing to the transport. Write methods may even be noops. All of this is
transparent to the caller; as long as a matching TInputProtocol
implementation is used, received messages will be decoded correctly.
All methods return a thrift::Result
. If an Err
is returned the protocol
instance and its underlying transport should be terminated.
Examples
Create and use a TOutputProtocol
use thrift::protocol::{TBinaryOutputProtocol, TFieldIdentifier, TOutputProtocol, TType}; use thrift::transport::TTcpChannel; let mut channel = TTcpChannel::new(); channel.open("127.0.0.1:9090").unwrap(); let mut protocol = TBinaryOutputProtocol::new(channel, true); protocol.write_field_begin(&TFieldIdentifier::new("string_thing", TType::String, 1)).unwrap(); protocol.write_string("foo").unwrap(); protocol.write_field_end().unwrap();
Required methods
fn write_message_begin(&mut self, identifier: &TMessageIdentifier) -> Result<()>
Write the beginning of a Thrift message.
fn write_message_end(&mut self) -> Result<()>
Write the end of a Thrift message.
fn write_struct_begin(&mut self, identifier: &TStructIdentifier) -> Result<()>
Write the beginning of a Thrift struct.
fn write_struct_end(&mut self) -> Result<()>
Write the end of a Thrift struct.
fn write_field_begin(&mut self, identifier: &TFieldIdentifier) -> Result<()>
Write the beginning of a Thrift field.
fn write_field_end(&mut self) -> Result<()>
Write the end of a Thrift field.
fn write_field_stop(&mut self) -> Result<()>
Write a STOP field indicating that all the fields in a struct have been written.
fn write_bool(&mut self, b: bool) -> Result<()>
Write a bool.
fn write_bytes(&mut self, b: &[u8]) -> Result<()>
Write a fixed-length byte array.
fn write_i8(&mut self, i: i8) -> Result<()>
Write an 8-bit signed integer.
fn write_i16(&mut self, i: i16) -> Result<()>
Write a 16-bit signed integer.
fn write_i32(&mut self, i: i32) -> Result<()>
Write a 32-bit signed integer.
fn write_i64(&mut self, i: i64) -> Result<()>
Write a 64-bit signed integer.
fn write_double(&mut self, d: f64) -> Result<()>
Write a 64-bit float.
fn write_string(&mut self, s: &str) -> Result<()>
Write a fixed-length string.
fn write_list_begin(&mut self, identifier: &TListIdentifier) -> Result<()>
Write the beginning of a list.
fn write_list_end(&mut self) -> Result<()>
Write the end of a list.
fn write_set_begin(&mut self, identifier: &TSetIdentifier) -> Result<()>
Write the beginning of a set.
fn write_set_end(&mut self) -> Result<()>
Write the end of a set.
fn write_map_begin(&mut self, identifier: &TMapIdentifier) -> Result<()>
Write the beginning of a map.
fn write_map_end(&mut self) -> Result<()>
Write the end of a map.
fn flush(&mut self) -> Result<()>
Flush buffered bytes to the underlying transport.
fn write_byte(&mut self, b: u8) -> Result<()>
Write an unsigned byte.
This method should never be used in generated code.
Implementations on Foreign Types
impl<P: ?Sized> TOutputProtocol for Box<P> where
P: TOutputProtocol,
[src]
P: TOutputProtocol,
fn write_message_begin(&mut self, identifier: &TMessageIdentifier) -> Result<()>
[src]
fn write_message_end(&mut self) -> Result<()>
[src]
fn write_struct_begin(&mut self, identifier: &TStructIdentifier) -> Result<()>
[src]
fn write_struct_end(&mut self) -> Result<()>
[src]
fn write_field_begin(&mut self, identifier: &TFieldIdentifier) -> Result<()>
[src]
fn write_field_end(&mut self) -> Result<()>
[src]
fn write_field_stop(&mut self) -> Result<()>
[src]
fn write_bool(&mut self, b: bool) -> Result<()>
[src]
fn write_bytes(&mut self, b: &[u8]) -> Result<()>
[src]
fn write_i8(&mut self, i: i8) -> Result<()>
[src]
fn write_i16(&mut self, i: i16) -> Result<()>
[src]
fn write_i32(&mut self, i: i32) -> Result<()>
[src]
fn write_i64(&mut self, i: i64) -> Result<()>
[src]
fn write_double(&mut self, d: f64) -> Result<()>
[src]
fn write_string(&mut self, s: &str) -> Result<()>
[src]
fn write_list_begin(&mut self, identifier: &TListIdentifier) -> Result<()>
[src]
fn write_list_end(&mut self) -> Result<()>
[src]
fn write_set_begin(&mut self, identifier: &TSetIdentifier) -> Result<()>
[src]
fn write_set_end(&mut self) -> Result<()>
[src]
fn write_map_begin(&mut self, identifier: &TMapIdentifier) -> Result<()>
[src]
fn write_map_end(&mut self) -> Result<()>
[src]
fn flush(&mut self) -> Result<()>
[src]
fn write_byte(&mut self, b: u8) -> Result<()>
[src]
Implementors
impl<P> TOutputProtocol for TMultiplexedOutputProtocol<P> where
P: TOutputProtocol,
[src]
P: TOutputProtocol,
fn write_message_begin(&mut self, identifier: &TMessageIdentifier) -> Result<()>
[src]
fn write_message_end(&mut self) -> Result<()>
[src]
fn write_struct_begin(&mut self, identifier: &TStructIdentifier) -> Result<()>
[src]
fn write_struct_end(&mut self) -> Result<()>
[src]
fn write_field_begin(&mut self, identifier: &TFieldIdentifier) -> Result<()>
[src]
fn write_field_end(&mut self) -> Result<()>
[src]
fn write_field_stop(&mut self) -> Result<()>
[src]
fn write_bytes(&mut self, b: &[u8]) -> Result<()>
[src]
fn write_bool(&mut self, b: bool) -> Result<()>
[src]
fn write_i8(&mut self, i: i8) -> Result<()>
[src]
fn write_i16(&mut self, i: i16) -> Result<()>
[src]
fn write_i32(&mut self, i: i32) -> Result<()>
[src]
fn write_i64(&mut self, i: i64) -> Result<()>
[src]
fn write_double(&mut self, d: f64) -> Result<()>
[src]
fn write_string(&mut self, s: &str) -> Result<()>
[src]
fn write_list_begin(&mut self, identifier: &TListIdentifier) -> Result<()>
[src]
fn write_list_end(&mut self) -> Result<()>
[src]
fn write_set_begin(&mut self, identifier: &TSetIdentifier) -> Result<()>
[src]
fn write_set_end(&mut self) -> Result<()>
[src]
fn write_map_begin(&mut self, identifier: &TMapIdentifier) -> Result<()>
[src]
fn write_map_end(&mut self) -> Result<()>
[src]
fn flush(&mut self) -> Result<()>
[src]
fn write_byte(&mut self, b: u8) -> Result<()>
[src]
impl<T> TOutputProtocol for TBinaryOutputProtocol<T> where
T: TWriteTransport,
[src]
T: TWriteTransport,
fn write_message_begin(&mut self, identifier: &TMessageIdentifier) -> Result<()>
[src]
fn write_message_end(&mut self) -> Result<()>
[src]
fn write_struct_begin(&mut self, _: &TStructIdentifier) -> Result<()>
[src]
fn write_struct_end(&mut self) -> Result<()>
[src]
fn write_field_begin(&mut self, identifier: &TFieldIdentifier) -> Result<()>
[src]
fn write_field_end(&mut self) -> Result<()>
[src]
fn write_field_stop(&mut self) -> Result<()>
[src]
fn write_bytes(&mut self, b: &[u8]) -> Result<()>
[src]
fn write_bool(&mut self, b: bool) -> Result<()>
[src]
fn write_i8(&mut self, i: i8) -> Result<()>
[src]
fn write_i16(&mut self, i: i16) -> Result<()>
[src]
fn write_i32(&mut self, i: i32) -> Result<()>
[src]
fn write_i64(&mut self, i: i64) -> Result<()>
[src]
fn write_double(&mut self, d: f64) -> Result<()>
[src]
fn write_string(&mut self, s: &str) -> Result<()>
[src]
fn write_list_begin(&mut self, identifier: &TListIdentifier) -> Result<()>
[src]
fn write_list_end(&mut self) -> Result<()>
[src]
fn write_set_begin(&mut self, identifier: &TSetIdentifier) -> Result<()>
[src]
fn write_set_end(&mut self) -> Result<()>
[src]
fn write_map_begin(&mut self, identifier: &TMapIdentifier) -> Result<()>
[src]
fn write_map_end(&mut self) -> Result<()>
[src]
fn flush(&mut self) -> Result<()>
[src]
fn write_byte(&mut self, b: u8) -> Result<()>
[src]
impl<T> TOutputProtocol for TCompactOutputProtocol<T> where
T: TWriteTransport,
[src]
T: TWriteTransport,