radicle: Introduce `trait GetPayload`

This new trait can be implemented by any struct that allows loading of
payloads. Currently, this only applies to the identity document.
This commit is contained in:
Lorenz Leutgeb 2025-09-18 15:38:33 +02:00 committed by Fintan Halpenny
parent aa28567035
commit 5167367918
1 changed files with 17 additions and 0 deletions

View File

@ -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 {