From 431af2c9c0d5b49b64d5b47cbff8fbb2f3eddce6 Mon Sep 17 00:00:00 2001 From: Sander van Harmelen Date: Wed, 23 Apr 2025 10:05:20 +0200 Subject: [PATCH] Add an option to print 64-bit integers without quotes --- protobuf-json-mapping/src/print.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/protobuf-json-mapping/src/print.rs b/protobuf-json-mapping/src/print.rs index eef44ca93..900ec7c9d 100644 --- a/protobuf-json-mapping/src/print.rs +++ b/protobuf-json-mapping/src/print.rs @@ -130,6 +130,9 @@ impl PrintableToJson for f64 { impl PrintableToJson for u64 { fn print_to_json(&self, w: &mut Printer) -> PrintResult<()> { // 64-bit integers are quoted by default + if w.print_options.unquoted_64bit_integers { + return Ok(write!(w.buf, "{}", self)?); + } Ok(write!(w.buf, "\"{}\"", self)?) } } @@ -137,6 +140,9 @@ impl PrintableToJson for u64 { impl PrintableToJson for i64 { fn print_to_json(&self, w: &mut Printer) -> PrintResult<()> { // 64-bit integers are quoted by default + if w.print_options.unquoted_64bit_integers { + return Ok(write!(w.buf, "{}", self)?); + } Ok(write!(w.buf, "\"{}\"", self)?) } } @@ -563,6 +569,8 @@ pub struct PrintOptions { pub proto_field_name: bool, /// Output field default values. pub always_output_default_values: bool, + /// Do not quote 64-bit integers. + pub unquoted_64bit_integers: bool, /// Prevent initializing `PrintOptions` enumerating all field. pub _future_options: (), }