Struct prost_reflect::text_format::FormatOptions
source · pub struct FormatOptions { /* private fields */ }
Available on crate feature
text-format
only.Expand description
Options to control printing of the protobuf text format.
Implementations§
source§impl FormatOptions
impl FormatOptions
sourcepub fn new() -> Self
pub fn new() -> Self
Creates new instance of FormatOptions
with default options.
sourcepub fn pretty(self, yes: bool) -> Self
pub fn pretty(self, yes: bool) -> Self
Whether to prettify the format output.
If set to true
, each field will be printed on a new line, and nested messages will be indented.
The default value is false
.
sourcepub fn skip_unknown_fields(self, yes: bool) -> Self
pub fn skip_unknown_fields(self, yes: bool) -> Self
Whether to include unknown fields in the output.
If set to false
, unknown fields will be printed. The protobuf format does not include type information,
so the formatter will attempt to infer types.
The default value is true
.
Examples
let dynamic_message = DynamicMessage::decode(message_descriptor, b"\x08\x96\x01\x1a\x02\x10\x42".as_ref()).unwrap();
assert_eq!(dynamic_message.to_text_format(), "");
let options = FormatOptions::new().skip_unknown_fields(false);
assert_eq!(dynamic_message.to_text_format_with_options(&options), "1:150,3{2:66}");
sourcepub fn expand_any(self, yes: bool) -> Self
pub fn expand_any(self, yes: bool) -> Self
Whether to use the expanded form of the google.protobuf.Any
type.
If set to true
, Any
fields will use an expanded form:
[type.googleapis.com/package.MyMessage] {
foo: 150
}
If set to false
, the normal text format representation will be used:
type_url: "type.googleapis.com/package.MyMessage"
value: "\x08\x96\x01"
The default value is true
.
Examples
let message_descriptor = pool.get_message_by_name("google.protobuf.Any").unwrap();
let mut dynamic_message = DynamicMessage::new(message_descriptor);
dynamic_message.set_field_by_name("type_url", Value::String("type.googleapis.com/package.MyMessage".to_owned()));
dynamic_message.set_field_by_name("value", Value::Bytes(Bytes::from_static(b"\x08\x96\x01\x1a\x02\x10\x42".as_ref())));
assert_eq!(dynamic_message.to_text_format(), "[type.googleapis.com/package.MyMessage]{foo:150,nested{bar:66}}");
let options = FormatOptions::new().expand_any(false);
assert_eq!(dynamic_message.to_text_format_with_options(&options), r#"type_url:"type.googleapis.com/package.MyMessage",value:"\010\226\001\032\002\020B""#);
Trait Implementations§
source§impl Clone for FormatOptions
impl Clone for FormatOptions
source§fn clone(&self) -> FormatOptions
fn clone(&self) -> FormatOptions
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for FormatOptions
impl Debug for FormatOptions
Auto Trait Implementations§
impl RefUnwindSafe for FormatOptions
impl Send for FormatOptions
impl Sync for FormatOptions
impl Unpin for FormatOptions
impl UnwindSafe for FormatOptions
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more