aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-02-20 15:48:13 +0100
committerPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-03-30 13:52:31 +0200
commitfa88446bd539415fcb8301ba25048f8499422c88 (patch)
tree91fe23499d9e79d053448172176d5ec1dd41a843
parentb74ef5aca042ea3f89c5b5eedd027dac9a457425 (diff)
downloadgcc-fa88446bd539415fcb8301ba25048f8499422c88.zip
gcc-fa88446bd539415fcb8301ba25048f8499422c88.tar.gz
gcc-fa88446bd539415fcb8301ba25048f8499422c88.tar.bz2
libproc_macro: Implement Display for Group
Implement the Display trait on internal rust Group structure. ChangeLog: * librust/proc_macro/rust/bridge/group.rs: Implement Display. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
-rw-r--r--librust/proc_macro/rust/bridge/group.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/librust/proc_macro/rust/bridge/group.rs b/librust/proc_macro/rust/bridge/group.rs
index 6590f89..5a68d87 100644
--- a/librust/proc_macro/rust/bridge/group.rs
+++ b/librust/proc_macro/rust/bridge/group.rs
@@ -1,4 +1,5 @@
use bridge;
+use std::fmt;
use Delimiter;
#[repr(C)]
@@ -7,3 +8,24 @@ pub struct Group {
delimiter: Delimiter,
stream: bridge::token_stream::TokenStream,
}
+impl fmt::Display for Group {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match self.delimiter {
+ Delimiter::Parenthesis => f.write_str("(")?,
+ Delimiter::Brace => f.write_str("{")?,
+ Delimiter::Bracket => f.write_str("[")?,
+ Delimiter::None => (),
+ }
+
+ self.stream.fmt(f)?;
+
+ match self.delimiter {
+ Delimiter::Parenthesis => f.write_str(")")?,
+ Delimiter::Brace => f.write_str("}")?,
+ Delimiter::Bracket => f.write_str("]")?,
+ Delimiter::None => (),
+ }
+
+ Ok(())
+ }
+}