diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2023-02-20 15:48:13 +0100 |
---|---|---|
committer | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2023-03-30 13:52:31 +0200 |
commit | fa88446bd539415fcb8301ba25048f8499422c88 (patch) | |
tree | 91fe23499d9e79d053448172176d5ec1dd41a843 | |
parent | b74ef5aca042ea3f89c5b5eedd027dac9a457425 (diff) | |
download | gcc-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.rs | 22 |
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(()) + } +} |