diff --git a/crates/radicle/src/identity/doc.rs b/crates/radicle/src/identity/doc.rs index a57d59b1..c79e9f13 100644 --- a/crates/radicle/src/identity/doc.rs +++ b/crates/radicle/src/identity/doc.rs @@ -272,6 +272,23 @@ impl Deref for Payload { } } +/// Trait for all types that may carry payloads. +pub trait GetPayload { + fn get_payload(&self, id: &PayloadId) -> Option<&Payload>; +} + +impl GetPayload for Doc { + fn get_payload(&self, id: &PayloadId) -> Option<&Payload> { + self.payload.get(id) + } +} + +impl GetPayload for RawDoc { + fn get_payload(&self, id: &PayloadId) -> Option<&Payload> { + self.payload.get(id) + } +} + /// A verified identity document at a specific commit. #[derive(Debug, Clone, PartialEq, Eq)] pub struct DocAt {