Trait thrift::protocol::TOutputProtocol
source · pub trait TOutputProtocol {
Show 23 methods
// Required methods
fn write_message_begin(
&mut self,
identifier: &TMessageIdentifier
) -> Result<()>;
fn write_message_end(&mut self) -> Result<()>;
fn write_struct_begin(
&mut self,
identifier: &TStructIdentifier
) -> Result<()>;
fn write_struct_end(&mut self) -> Result<()>;
fn write_field_begin(&mut self, identifier: &TFieldIdentifier) -> Result<()>;
fn write_field_end(&mut self) -> Result<()>;
fn write_field_stop(&mut self) -> Result<()>;
fn write_bool(&mut self, b: bool) -> Result<()>;
fn write_bytes(&mut self, b: &[u8]) -> Result<()>;
fn write_i8(&mut self, i: i8) -> Result<()>;
fn write_i16(&mut self, i: i16) -> Result<()>;
fn write_i32(&mut self, i: i32) -> Result<()>;
fn write_i64(&mut self, i: i64) -> Result<()>;
fn write_double(&mut self, d: f64) -> Result<()>;
fn write_string(&mut self, s: &str) -> Result<()>;
fn write_list_begin(&mut self, identifier: &TListIdentifier) -> Result<()>;
fn write_list_end(&mut self) -> Result<()>;
fn write_set_begin(&mut self, identifier: &TSetIdentifier) -> Result<()>;
fn write_set_end(&mut self) -> Result<()>;
fn write_map_begin(&mut self, identifier: &TMapIdentifier) -> Result<()>;
fn write_map_end(&mut self) -> Result<()>;
fn flush(&mut self) -> Result<()>;
fn write_byte(&mut self, b: u8) -> Result<()>;
}
Expand description
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§
sourcefn write_message_begin(&mut self, identifier: &TMessageIdentifier) -> Result<()>
fn write_message_begin(&mut self, identifier: &TMessageIdentifier) -> Result<()>
Write the beginning of a Thrift message.
sourcefn write_message_end(&mut self) -> Result<()>
fn write_message_end(&mut self) -> Result<()>
Write the end of a Thrift message.
sourcefn write_struct_begin(&mut self, identifier: &TStructIdentifier) -> Result<()>
fn write_struct_begin(&mut self, identifier: &TStructIdentifier) -> Result<()>
Write the beginning of a Thrift struct.
sourcefn write_struct_end(&mut self) -> Result<()>
fn write_struct_end(&mut self) -> Result<()>
Write the end of a Thrift struct.
sourcefn write_field_begin(&mut self, identifier: &TFieldIdentifier) -> Result<()>
fn write_field_begin(&mut self, identifier: &TFieldIdentifier) -> Result<()>
Write the beginning of a Thrift field.
sourcefn write_field_end(&mut self) -> Result<()>
fn write_field_end(&mut self) -> Result<()>
Write the end of a Thrift field.
sourcefn write_field_stop(&mut self) -> Result<()>
fn write_field_stop(&mut self) -> Result<()>
Write a STOP field indicating that all the fields in a struct have been written.
sourcefn write_bool(&mut self, b: bool) -> Result<()>
fn write_bool(&mut self, b: bool) -> Result<()>
Write a bool.
sourcefn write_bytes(&mut self, b: &[u8]) -> Result<()>
fn write_bytes(&mut self, b: &[u8]) -> Result<()>
Write a fixed-length byte array.
sourcefn write_double(&mut self, d: f64) -> Result<()>
fn write_double(&mut self, d: f64) -> Result<()>
Write a 64-bit float.
sourcefn write_string(&mut self, s: &str) -> Result<()>
fn write_string(&mut self, s: &str) -> Result<()>
Write a fixed-length string.
sourcefn write_list_begin(&mut self, identifier: &TListIdentifier) -> Result<()>
fn write_list_begin(&mut self, identifier: &TListIdentifier) -> Result<()>
Write the beginning of a list.
sourcefn write_list_end(&mut self) -> Result<()>
fn write_list_end(&mut self) -> Result<()>
Write the end of a list.
sourcefn write_set_begin(&mut self, identifier: &TSetIdentifier) -> Result<()>
fn write_set_begin(&mut self, identifier: &TSetIdentifier) -> Result<()>
Write the beginning of a set.
sourcefn write_set_end(&mut self) -> Result<()>
fn write_set_end(&mut self) -> Result<()>
Write the end of a set.
sourcefn write_map_begin(&mut self, identifier: &TMapIdentifier) -> Result<()>
fn write_map_begin(&mut self, identifier: &TMapIdentifier) -> Result<()>
Write the beginning of a map.
sourcefn write_map_end(&mut self) -> Result<()>
fn write_map_end(&mut self) -> Result<()>
Write the end of a map.
sourcefn write_byte(&mut self, b: u8) -> Result<()>
fn write_byte(&mut self, b: u8) -> Result<()>
Write an unsigned byte.
This method should never be used in generated code.