use crate::{Pczt, common::Global};
pub mod orchard;
pub mod sapling;
pub mod transparent;
pub struct Redactor {
pczt: Pczt,
}
impl Redactor {
pub fn new(pczt: Pczt) -> Self {
Self { pczt }
}
pub fn redact_global_with<F>(mut self, f: F) -> Self
where
F: FnOnce(GlobalRedactor<'_>),
{
f(GlobalRedactor(&mut self.pczt.global));
self
}
pub fn finish(self) -> Pczt {
self.pczt
}
}
pub struct GlobalRedactor<'a>(&'a mut Global);
impl GlobalRedactor<'_> {
pub fn redact_proprietary(&mut self, key: &str) {
self.0.proprietary.remove(key);
}
pub fn clear_proprietary(&mut self) {
self.0.proprietary.clear();
}
}