diff options
Diffstat (limited to 'vendor/gix/src/object/tag.rs')
-rw-r--r-- | vendor/gix/src/object/tag.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/vendor/gix/src/object/tag.rs b/vendor/gix/src/object/tag.rs new file mode 100644 index 000000000..ce9d7360a --- /dev/null +++ b/vendor/gix/src/object/tag.rs @@ -0,0 +1,15 @@ +use crate::{ext::ObjectIdExt, Tag}; + +impl<'repo> Tag<'repo> { + /// Decode this tag partially and return the id of its target. + pub fn target_id(&self) -> Result<crate::Id<'repo>, gix_object::decode::Error> { + gix_object::TagRefIter::from_bytes(&self.data) + .target_id() + .map(|id| id.attach(self.repo)) + } + + /// Decode this tag partially and return the tagger, if the field exists. + pub fn tagger(&self) -> Result<Option<gix_actor::SignatureRef<'_>>, gix_object::decode::Error> { + gix_object::TagRefIter::from_bytes(&self.data).tagger() + } +} |