diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-18 02:49:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-18 02:49:42 +0000 |
commit | 837b550238aa671a591ccf282dddeab29cadb206 (patch) | |
tree | 914b6b8862bace72bd3245ca184d374b08d8a672 /vendor/gix-attributes/src/assignment.rs | |
parent | Adding debian version 1.70.0+dfsg2-1. (diff) | |
download | rustc-837b550238aa671a591ccf282dddeab29cadb206.tar.xz rustc-837b550238aa671a591ccf282dddeab29cadb206.zip |
Merging upstream version 1.71.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/gix-attributes/src/assignment.rs')
-rw-r--r-- | vendor/gix-attributes/src/assignment.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/vendor/gix-attributes/src/assignment.rs b/vendor/gix-attributes/src/assignment.rs index e1d7263f7..87689d443 100644 --- a/vendor/gix-attributes/src/assignment.rs +++ b/vendor/gix-attributes/src/assignment.rs @@ -1,4 +1,6 @@ use crate::{Assignment, AssignmentRef, NameRef, StateRef}; +use bstr::ByteSlice; +use std::fmt::Write; impl<'a> AssignmentRef<'a> { pub(crate) fn new(name: NameRef<'a>, state: StateRef<'a>) -> AssignmentRef<'a> { @@ -26,3 +28,24 @@ impl<'a> Assignment { AssignmentRef::new(self.name.as_ref(), self.state.as_ref()) } } + +impl std::fmt::Display for AssignmentRef<'_> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self.state { + StateRef::Set => f.write_str(self.name.as_str()), + StateRef::Unset => { + f.write_char('-')?; + f.write_str(self.name.as_str()) + } + StateRef::Value(v) => { + f.write_str(self.name.as_str())?; + f.write_char('=')?; + f.write_str(v.as_bstr().to_str_lossy().as_ref()) + } + StateRef::Unspecified => { + f.write_char('!')?; + f.write_str(self.name.as_str()) + } + } + } +} |