lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

commit 0af1179199af151881bbff52812dfde21d966db0
parent 1eb5a4e7acd0ddf2fb810535e72c73460337214c
Author: triesap <tyson@radroots.org>
Date:   Wed, 29 Jul 2026 06:15:01 +0000

event: remove public codegen and implementation features

- expose only std serde and knowledge as public event features
- keep DTO generation private and remove concrete crypto implementations
- preserve trade DTO wire shapes without event trait coupling
- refresh API and SourceMaintenance evidence with portable validation

Diffstat:
MCargo.lock | 1-
Mcrates/event/Cargo.toml | 6+-----
Mcrates/event/README.md | 10++++++++++
Mcrates/event/src/account.rs | 4++--
Mcrates/event/src/admission.rs | 11+++++++++--
Mcrates/event/src/app_data.rs | 4++--
Mcrates/event/src/coop.rs | 12++++++------
Mcrates/event/src/document.rs | 8++++----
Mcrates/event/src/draft.rs | 151------------------------------------------------------------------------------
Mcrates/event/src/envelope.rs | 16++++++++--------
Mcrates/event/src/farm.rs | 12++++++------
Mcrates/event/src/follow.rs | 10+++++-----
Mcrates/event/src/gcs.rs | 12++++++------
Mcrates/event/src/geochat.rs | 4++--
Mcrates/event/src/gift_wrap.rs | 8++++----
Mcrates/event/src/id.rs | 8++++----
Mcrates/event/src/job.rs | 12++++++------
Mcrates/event/src/job_feedback.rs | 4++--
Mcrates/event/src/job_request.rs | 12++++++------
Mcrates/event/src/job_result.rs | 4++--
Mcrates/event/src/knowledge.rs | 96++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mcrates/event/src/lib.rs | 2+-
Mcrates/event/src/list.rs | 8++++----
Mcrates/event/src/list_set.rs | 4++--
Mcrates/event/src/message.rs | 8++++----
Mcrates/event/src/message_file.rs | 10+++++-----
Mcrates/event/src/operational_listing.rs | 60++++++++++++++++++++++++++++++------------------------------
Mcrates/event/src/order.rs | 57++++++++++++++++++++++++++++++---------------------------
Mcrates/event/src/order_economics.rs | 95++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
Mcrates/event/src/plot.rs | 12++++++------
Mcrates/event/src/post.rs | 4++--
Mcrates/event/src/profile.rs | 4++--
Mcrates/event/src/reaction.rs | 4++--
Mcrates/event/src/relay_document.rs | 4++--
Mcrates/event/src/resource_area.rs | 12++++++------
Mcrates/event/src/resource_cap.rs | 18+++++++++---------
Mcrates/event/src/seal.rs | 4++--
Mcrates/event/src/social.rs | 14+++++++-------
Mcrates/event/src/tag.rs | 10+++++-----
Mcrates/event/src/trade_validation.rs | 4++--
Mcrates/event/src/verification.rs | 78++++++++++++++++++++++++++++++++++++++++++++----------------------------------
Mcrates/event/tests/package_boundary.rs | 17+++++++++++++++++
Mcrates/event_codec/Cargo.toml | 2+-
Mcrates/event_store/contracts/source_maintenance_v1.manifest.json | 36++++++++++++++++++------------------
Mcrates/event_store/contracts/source_maintenance_v1.manifest.sha256 | 2+-
Mcrates/event_store/src/generated/source_maintenance_manifest.rs | 4++--
Mcrates/test_fixtures/Cargo.toml | 1-
Mcrates/trade/Cargo.toml | 1-
Mcrates/trade/src/identity.rs | 4++++
Mcrates/trade/src/workflow.rs | 38++++++++++++++++++++++++++++++++++++++
Mdocs/api/radroots_event.txt | 314+------------------------------------------------------------------------------
51 files changed, 437 insertions(+), 799 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock @@ -4538,7 +4538,6 @@ dependencies = [ "radroots_core", "radroots_identity", "radroots_protocol", - "secp256k1", "serde", "serde_json", "sha2", diff --git a/crates/event/Cargo.toml b/crates/event/Cargo.toml @@ -17,10 +17,7 @@ name = "radroots_event" [features] default = ["std", "serde"] -dto-bindgen = ["std", "serde", "knowledge-nip54", "dep:dto_bindgen"] knowledge = [] -knowledge-nip54 = ["knowledge"] -signature = ["dep:secp256k1"] std = [ "radroots_blossom/std", "radroots_core/std", @@ -36,7 +33,6 @@ serde = [ ] [dependencies] -dto_bindgen = { workspace = true, optional = true } radroots_blossom = { workspace = true, default-features = false } radroots_core = { workspace = true, default-features = false } radroots_identity = { workspace = true, default-features = false } @@ -50,12 +46,12 @@ serde = { workspace = true, default-features = false, features = [ serde_json = { workspace = true, default-features = false, features = [ "alloc", ] } -secp256k1 = { workspace = true, optional = true } sha2 = { workspace = true, default-features = false } unicode-general-category = { workspace = true } url_nostd = { workspace = true } [dev-dependencies] +dto_bindgen = { workspace = true } radroots_core = { workspace = true, default-features = false, features = [ "serde", "std", diff --git a/crates/event/README.md b/crates/event/README.md @@ -22,6 +22,16 @@ are nested below that authority, including `food::availability`, `post::deletion`, `post::reply`, `tag::relay_hint`, and the farm and social subdomains. +## Features + +The default feature set is `std` plus `serde`. The complete public feature +vocabulary is `std`, `serde`, and `knowledge`; features are additive and +`knowledge` enables the optional knowledge-event model. Binding generation and +fixtures are private build/test concerns rather than public features. +Cryptographic verification implementations belong to `radroots_event_codec` +or signing crates and enter this crate only through the explicit +`admission::SignatureVerifier` host SPI. + The Profile module exposes the exclusive strict authored model. It requires a non-whitespace, control-free name; its media fields accept only image-typed, byte-verified Blossom descriptors; and its NIP-05 identifier type validates diff --git a/crates/event/src/account.rs b/crates/event/src/account.rs @@ -5,8 +5,8 @@ use alloc::string::String; pub const KIND_ACCOUNT_CLAIM: u32 = KIND_ACCOUNT_CLAIM_EVENT; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/admission.rs b/crates/event/src/admission.rs @@ -2,6 +2,7 @@ pub use crate::verification::{ ContractValidatedEvent, Error, IdVerifiedEvent, RawEvent, SignatureVerifiedEvent, + SignatureVerifier, }; use crate::envelope::RadrootsEventEnvelope; @@ -128,13 +129,19 @@ impl VisibleEvent { } } -#[cfg(all(test, feature = "signature"))] +#[cfg(test)] mod tests { use super::*; use crate::envelope::{RadrootsEventEnvelope, RadrootsEventEnvelopeParts}; struct Allow; + impl SignatureVerifier for Allow { + fn verify_signature(&self, _event: &RadrootsEventEnvelope) -> Result<(), Error> { + Ok(()) + } + } + impl AdmissionPolicy for Allow { type Error = core::convert::Infallible; @@ -177,7 +184,7 @@ mod tests { let visible = RawEvent::new(envelope) .verify_id() .expect("verified id") - .verify_signature() + .verify_signature(&Allow) .expect("verified signature") .validate_contract() .expect("validated contract") diff --git a/crates/event/src/app_data.rs b/crates/event/src/app_data.rs @@ -7,8 +7,8 @@ use alloc::string::String; pub const KIND_APP_DATA: u32 = KIND_APP_DATA_EVENT; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/coop.rs b/crates/event/src/coop.rs @@ -5,8 +5,8 @@ use crate::farm::change_set::RadrootsGcsLocation; #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -23,8 +23,8 @@ pub struct RadrootsCoop { pub tags: Option<Vec<String>>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -35,8 +35,8 @@ pub struct RadrootsCoopRef { pub d_tag: String, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/document.rs b/crates/event/src/document.rs @@ -3,8 +3,8 @@ #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -15,8 +15,8 @@ pub struct RadrootsDocumentSubject { pub address: Option<String>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/draft.rs b/crates/event/src/draft.rs @@ -532,45 +532,6 @@ impl From<RadrootsEventEnvelopeError> for RadrootsSignedEventError { } } -#[cfg(feature = "signature")] -#[derive(Clone, Debug, PartialEq, Eq)] -pub enum RadrootsSignatureVerificationError { - InvalidEventId, - InvalidPubkey, - InvalidSignature, - VerificationFailed, -} - -#[cfg(feature = "signature")] -impl fmt::Display for RadrootsSignatureVerificationError { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self { - Self::InvalidEventId => write!( - f, - "signed event id cannot be decoded for signature verification" - ), - Self::InvalidPubkey => write!( - f, - "signed event pubkey cannot be decoded for signature verification" - ), - Self::InvalidSignature => write!( - f, - "signed event signature cannot be decoded for verification" - ), - Self::VerificationFailed => write!(f, "signed event signature verification failed"), - } - } -} - -#[cfg(all(feature = "signature", feature = "std"))] -impl std::error::Error for RadrootsSignatureVerificationError {} - -#[cfg(feature = "signature")] -#[derive(Clone, Debug, PartialEq, Eq)] -pub struct RadrootsVerifiedSignedEvent { - signed_event: RadrootsSignedEvent, -} - impl RadrootsSignedEvent { pub fn new(parts: RadrootsSignedEventParts) -> Result<Self, RadrootsSignedEventError> { let id = RadrootsEventId::parse(parts.id) @@ -703,27 +664,6 @@ impl RadrootsSignedEvent { pub fn signature_hex(&self) -> String { self.envelope.sig().to_hex() } - - #[cfg(feature = "signature")] - pub fn verify_signature( - self, - ) -> Result<RadrootsVerifiedSignedEvent, RadrootsSignatureVerificationError> { - verify_bip340_signature(&self)?; - Ok(RadrootsVerifiedSignedEvent { signed_event: self }) - } -} - -#[cfg(feature = "signature")] -impl RadrootsVerifiedSignedEvent { - #[inline] - pub fn signed_event(&self) -> &RadrootsSignedEvent { - &self.signed_event - } - - #[inline] - pub fn into_signed_event(self) -> RadrootsSignedEvent { - self.signed_event - } } pub fn validate_signed_nostr_event_matches_draft( @@ -786,25 +726,6 @@ pub fn validate_signed_nostr_event_matches_draft( Ok(()) } -#[cfg(feature = "signature")] -fn verify_bip340_signature( - signed_event: &RadrootsSignedEvent, -) -> Result<(), RadrootsSignatureVerificationError> { - use secp256k1::{Message, Secp256k1, XOnlyPublicKey, schnorr::Signature}; - - let event_id = *signed_event.id().as_bytes(); - let pubkey = signed_event.pubkey().into_bytes(); - let sig = *signed_event.sig().as_bytes(); - let message = Message::from_digest(event_id); - let pubkey = XOnlyPublicKey::from_slice(&pubkey) - .map_err(|_| RadrootsSignatureVerificationError::InvalidPubkey)?; - let sig = Signature::from_slice(&sig) - .map_err(|_| RadrootsSignatureVerificationError::InvalidSignature)?; - Secp256k1::verification_only() - .verify_schnorr(&sig, &message, &pubkey) - .map_err(|_| RadrootsSignatureVerificationError::VerificationFailed) -} - pub fn compute_nip01_event_id( pubkey: &str, created_at: u64, @@ -1659,76 +1580,4 @@ mod tests { .expect_err("invalid preimage pubkey"); assert!(matches!(error, RadrootsDraftError::IdParse(_))); } - - #[cfg(feature = "signature")] - #[test] - fn verified_signed_event_accepts_valid_bip340_signature() { - use secp256k1::{Keypair, Message, Secp256k1, SecretKey}; - - let secp = Secp256k1::new(); - let secret_key = SecretKey::from_slice(&[3u8; 32]).expect("secret key"); - let keypair = Keypair::from_secret_key(&secp, &secret_key); - let (pubkey, _) = keypair.x_only_public_key(); - let pubkey = pubkey.to_string(); - let tags = vec![vec!["t".to_owned(), "soil".to_owned()]]; - let content = "hello".to_owned(); - let event_id = compute_canonical_nip01_event_id( - pubkey.as_str(), - 1_700_000_000, - KIND_POST, - &tags, - content.as_str(), - ) - .expect("event id") - .into_string(); - let mut event_id_bytes = [0u8; 32]; - hex::decode_to_slice(event_id.as_str(), &mut event_id_bytes).expect("event id bytes"); - let message = Message::from_digest(event_id_bytes); - let sig = secp - .sign_schnorr_no_aux_rand(&message, &keypair) - .to_string(); - let wire = unchecked_wire( - event_id, - pubkey, - 1_700_000_000, - KIND_POST, - tags, - content, - sig, - ); - let raw_json = raw_json_for_wire(&wire); - let signed = - RadrootsSignedEvent::from_wire_verified_id(wire, raw_json).expect("signed event"); - let verified = signed.verify_signature().expect("verified event"); - - assert_eq!(verified.signed_event().kind(), KIND_POST); - } - - #[cfg(feature = "signature")] - #[test] - fn verified_signed_event_rejects_invalid_bip340_signature() { - use secp256k1::{Keypair, Secp256k1, SecretKey}; - - let secp = Secp256k1::new(); - let secret_key = SecretKey::from_slice(&[3u8; 32]).expect("secret key"); - let keypair = Keypair::from_secret_key(&secp, &secret_key); - let (pubkey, _) = keypair.x_only_public_key(); - let wire = verified_wire( - pubkey.to_string(), - 1_700_000_000, - KIND_POST, - Vec::new(), - "hello".to_owned(), - hex_128('b'), - ); - let raw_json = raw_json_for_wire(&wire); - let signed = - RadrootsSignedEvent::from_wire_verified_id(wire, raw_json).expect("signed event"); - let error = signed.verify_signature().expect_err("invalid signature"); - - assert_eq!( - error, - RadrootsSignatureVerificationError::VerificationFailed - ); - } } diff --git a/crates/event/src/envelope.rs b/crates/event/src/envelope.rs @@ -61,7 +61,7 @@ impl<'de> serde::Deserialize<'de> for RadrootsEventTimestamp { } } -#[cfg(feature = "dto-bindgen")] +#[cfg(all(test, feature = "std"))] impl dto_bindgen::Dto for RadrootsEventTimestamp { fn describe(ctx: &mut dto_bindgen::__private::DescribeCtx) -> dto_bindgen::__private::TypeRef { <u64 as dto_bindgen::Dto>::describe(ctx) @@ -120,7 +120,7 @@ impl<'de> serde::Deserialize<'de> for RadrootsEventKind { } } -#[cfg(feature = "dto-bindgen")] +#[cfg(all(test, feature = "std"))] impl dto_bindgen::Dto for RadrootsEventKind { fn describe(ctx: &mut dto_bindgen::__private::DescribeCtx) -> dto_bindgen::__private::TypeRef { <u32 as dto_bindgen::Dto>::describe(ctx) @@ -408,7 +408,7 @@ impl<'de> serde::Deserialize<'de> for RadrootsEventTags { } } -#[cfg(feature = "dto-bindgen")] +#[cfg(all(test, feature = "std"))] impl dto_bindgen::Dto for RadrootsEventTags { fn describe(ctx: &mut dto_bindgen::__private::DescribeCtx) -> dto_bindgen::__private::TypeRef { <Vec<Vec<String>> as dto_bindgen::Dto>::describe(ctx) @@ -430,15 +430,15 @@ pub struct RadrootsEventEnvelopeParts { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsEventEnvelopeDto")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr(all(test, feature = "std"), dto(ts(name = "RadrootsEventEnvelopeDto")))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsEventEnvelope { id: RadrootsEventId, - #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] + #[cfg_attr(all(test, feature = "std"), dto(as = "string"))] author: PublicKey, - #[cfg_attr(feature = "dto-bindgen", dto(int = "json_number"))] + #[cfg_attr(all(test, feature = "std"), dto(int = "json_number"))] created_at: RadrootsEventTimestamp, kind: RadrootsEventKind, tags: RadrootsEventTags, diff --git a/crates/event/src/farm.rs b/crates/event/src/farm.rs @@ -3,8 +3,8 @@ #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -21,8 +21,8 @@ pub struct RadrootsFarm { pub tags: Option<Vec<String>>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -33,8 +33,8 @@ pub struct RadrootsFarmRef { pub d_tag: String, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/follow.rs b/crates/event/src/follow.rs @@ -1,8 +1,8 @@ #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -12,15 +12,15 @@ pub struct RadrootsFollow { pub list: Vec<RadrootsFollowProfile>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] #[derive(Clone, Debug)] pub struct RadrootsFollowProfile { - #[cfg_attr(feature = "dto-bindgen", dto(int = "json_number"))] + #[cfg_attr(all(test, feature = "std"), dto(int = "json_number"))] pub published_at: u64, pub public_key: String, pub relay_url: Option<String>, diff --git a/crates/event/src/gcs.rs b/crates/event/src/gcs.rs @@ -1,8 +1,8 @@ #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -14,8 +14,8 @@ pub struct RadrootsGeoJsonPoint { pub coordinates: [f64; 2], } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -27,8 +27,8 @@ pub struct RadrootsGeoJsonPolygon { pub coordinates: Vec<Vec<[f64; 2]>>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/geochat.rs b/crates/event/src/geochat.rs @@ -3,8 +3,8 @@ #[cfg(not(feature = "std"))] use alloc::string::String; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/gift_wrap.rs b/crates/event/src/gift_wrap.rs @@ -3,8 +3,8 @@ #[cfg(not(feature = "std"))] use alloc::string::String; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -16,8 +16,8 @@ pub struct RadrootsGiftWrap { pub expiration: Option<u32>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/id.rs b/crates/event/src/id.rs @@ -59,8 +59,8 @@ impl std::error::Error for RadrootsIdParseError {} macro_rules! validated_string_id { ($name:ident, $validator:ident) => { - #[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] - #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] + #[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] + #[cfg_attr(all(test, feature = "std"), dto(as = "string"))] #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct $name(String); @@ -149,8 +149,8 @@ macro_rules! validated_string_id { macro_rules! validated_hex_id { ($name:ident, $byte_len:expr) => { - #[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] - #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] + #[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] + #[cfg_attr(all(test, feature = "std"), dto(as = "string"))] #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct $name([u8; $byte_len]); diff --git a/crates/event/src/job.rs b/crates/event/src/job.rs @@ -1,8 +1,8 @@ #[cfg(not(feature = "std"))] use alloc::string::String; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -20,8 +20,8 @@ pub enum JobInputType { Text, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -41,8 +41,8 @@ pub enum JobFeedbackStatus { Partial, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/job_feedback.rs b/crates/event/src/job_feedback.rs @@ -6,8 +6,8 @@ use crate::{ #[cfg(not(feature = "std"))] use alloc::string::String; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/job_request.rs b/crates/event/src/job_request.rs @@ -3,8 +3,8 @@ use crate::social::job::JobInputType; #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -17,8 +17,8 @@ pub struct RadrootsJobInput { pub marker: Option<String>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -29,8 +29,8 @@ pub struct RadrootsJobParam { pub value: String, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/job_result.rs b/crates/event/src/job_result.rs @@ -6,8 +6,8 @@ use crate::{ #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/knowledge.rs b/crates/event/src/knowledge.rs @@ -527,8 +527,8 @@ pub fn validate_contribution_attestation( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsAddressableRef { pub kind: u32, @@ -541,8 +541,8 @@ pub struct RadrootsAddressableRef { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsRightsAssertion { pub assertion: String, @@ -555,8 +555,8 @@ pub struct RadrootsRightsAssertion { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsWikiArticle { pub d_tag: String, @@ -573,8 +573,8 @@ pub struct RadrootsWikiArticle { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsWikiArticleVersionRef { pub event_id: String, @@ -585,8 +585,8 @@ pub struct RadrootsWikiArticleVersionRef { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsWikiRedirect { pub d_tag: String, @@ -597,8 +597,8 @@ pub struct RadrootsWikiRedirect { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsWikiMergeRequest { pub target_article: RadrootsAddressableRef, @@ -612,8 +612,8 @@ pub struct RadrootsWikiMergeRequest { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeSource { pub schema: String, @@ -636,8 +636,8 @@ pub struct RadrootsKnowledgeSource { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeClaim { pub schema: String, @@ -655,8 +655,8 @@ pub struct RadrootsKnowledgeClaim { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeCitationSpan { pub source_ref: RadrootsEventRef, @@ -672,8 +672,8 @@ pub struct RadrootsKnowledgeCitationSpan { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeNodeRef { pub node_type: String, @@ -687,8 +687,8 @@ pub struct RadrootsKnowledgeNodeRef { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeRelation { pub schema: String, @@ -705,8 +705,8 @@ pub struct RadrootsKnowledgeRelation { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeReview { pub schema: String, @@ -723,8 +723,8 @@ pub struct RadrootsKnowledgeReview { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeReviewTarget { pub event_id: String, @@ -739,8 +739,8 @@ pub struct RadrootsKnowledgeReviewTarget { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr(any(feature = "serde", test), serde(rename_all = "snake_case"))] #[derive(Clone, Debug, PartialEq, Eq)] pub enum RadrootsKnowledgeReviewScope { @@ -753,8 +753,8 @@ pub enum RadrootsKnowledgeReviewScope { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeReviewScore { pub dimension: String, @@ -766,8 +766,8 @@ pub struct RadrootsKnowledgeReviewScore { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeFieldReport { pub schema: String, @@ -786,8 +786,8 @@ pub struct RadrootsKnowledgeFieldReport { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeFieldContext { pub location_precision: RadrootsKnowledgeLocationPrecision, @@ -801,8 +801,8 @@ pub struct RadrootsKnowledgeFieldContext { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr(any(feature = "serde", test), serde(rename_all = "snake_case"))] #[derive(Clone, Debug, PartialEq, Eq)] pub enum RadrootsKnowledgeLocationPrecision { @@ -818,8 +818,8 @@ pub enum RadrootsKnowledgeLocationPrecision { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeLocation { pub label: Option<String>, @@ -832,8 +832,8 @@ pub struct RadrootsKnowledgeLocation { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeObservation { pub observation_type: String, @@ -846,8 +846,8 @@ pub struct RadrootsKnowledgeObservation { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeObservationValue { pub key: String, @@ -859,8 +859,8 @@ pub struct RadrootsKnowledgeObservationValue { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsEvidenceBounty { pub schema: String, @@ -878,8 +878,8 @@ pub struct RadrootsEvidenceBounty { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsKnowledgeChangeProposal { pub schema: String, @@ -896,8 +896,8 @@ pub struct RadrootsKnowledgeChangeProposal { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsContributionAttestation { pub schema: String, diff --git a/crates/event/src/lib.rs b/crates/event/src/lib.rs @@ -42,7 +42,7 @@ pub mod admission; pub mod calendar; pub mod contract; pub mod draft; -#[cfg(feature = "dto-bindgen")] +#[cfg(all(test, feature = "std", feature = "knowledge"))] mod dto; pub mod envelope; pub mod farm; diff --git a/crates/event/src/list.rs b/crates/event/src/list.rs @@ -1,8 +1,8 @@ #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -13,8 +13,8 @@ pub struct RadrootsList { pub entries: Vec<RadrootsListEntry>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/list_set.rs b/crates/event/src/list_set.rs @@ -3,8 +3,8 @@ use crate::social::list::RadrootsListEntry; #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/message.rs b/crates/event/src/message.rs @@ -5,8 +5,8 @@ use crate::tag::RadrootsEventPtr; #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -19,8 +19,8 @@ pub struct RadrootsMessage { pub subject: Option<String>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/message_file.rs b/crates/event/src/message_file.rs @@ -6,8 +6,8 @@ use crate::tag::RadrootsEventPtr; #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -24,7 +24,7 @@ pub struct RadrootsMessageFile { pub decryption_nonce: String, pub encrypted_hash: String, pub original_hash: Option<String>, - #[cfg_attr(feature = "dto-bindgen", dto(int = "json_string"))] + #[cfg_attr(all(test, feature = "std"), dto(int = "json_string"))] pub size: Option<u64>, pub dimensions: Option<RadrootsMessageFileDimensions>, pub blurhash: Option<String>, @@ -32,8 +32,8 @@ pub struct RadrootsMessageFile { pub fallbacks: Vec<String>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/operational_listing.rs b/crates/event/src/operational_listing.rs @@ -13,8 +13,8 @@ use alloc::{string::String, vec::Vec}; any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub enum RadrootsOperationalListingParseError { InvalidKind(u32), @@ -49,8 +49,8 @@ impl std::error::Error for RadrootsOperationalListingParseError {} any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( feature = "serde", serde(rename_all = "snake_case", tag = "kind", content = "amount") @@ -58,9 +58,9 @@ impl std::error::Error for RadrootsOperationalListingParseError {} #[derive(Clone, Debug)] pub enum RadrootsOperationalListingAvailability { Window { - #[cfg_attr(feature = "dto-bindgen", dto(int = "json_string"))] + #[cfg_attr(all(test, feature = "std"), dto(int = "json_string"))] start: Option<u64>, - #[cfg_attr(feature = "dto-bindgen", dto(int = "json_string"))] + #[cfg_attr(all(test, feature = "std"), dto(int = "json_string"))] end: Option<u64>, }, Status { @@ -72,8 +72,8 @@ pub enum RadrootsOperationalListingAvailability { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( feature = "serde", serde(rename_all = "snake_case", tag = "kind", content = "amount") @@ -89,8 +89,8 @@ pub enum RadrootsOperationalListingStatus { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( feature = "serde", serde(rename_all = "snake_case", tag = "kind", content = "amount") @@ -107,12 +107,12 @@ pub enum RadrootsOperationalListingDeliveryMethod { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug)] pub struct RadrootsOperationalListing { pub d_tag: RadrootsDTag, - #[cfg_attr(feature = "dto-bindgen", dto(int = "json_string"))] + #[cfg_attr(all(test, feature = "std"), dto(int = "json_string"))] #[cfg_attr( feature = "serde", serde(default, skip_serializing_if = "Option::is_none") @@ -125,9 +125,9 @@ pub struct RadrootsOperationalListing { pub bins: Vec<RadrootsOperationalListingBin>, pub resource_area: Option<RadrootsResourceAreaRef>, pub plot: Option<RadrootsPlotRef>, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Array<Discount>")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Array<Discount>")))] pub discounts: Option<Vec<Discount>>, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Decimal")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Decimal")))] pub inventory_available: Option<Decimal>, pub availability: Option<RadrootsOperationalListingAvailability>, pub delivery_method: Option<RadrootsOperationalListingDeliveryMethod>, @@ -139,8 +139,8 @@ pub struct RadrootsOperationalListing { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug)] pub struct RadrootsOperationalListingProduct { pub key: String, @@ -164,28 +164,28 @@ pub struct RadrootsOperationalListingProductTagKeys; any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug)] pub struct RadrootsOperationalListingBin { pub bin_id: RadrootsInventoryBinId, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Quantity")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Quantity")))] pub quantity: Quantity, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "QuantityPrice")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "QuantityPrice")))] pub price_per_canonical_unit: QuantityPrice, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Decimal")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Decimal")))] pub display_amount: Option<Decimal>, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Unit")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Unit")))] pub display_unit: Option<Unit>, pub display_label: Option<String>, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub display_price: Option<Money>, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Unit")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Unit")))] pub display_price_unit: Option<Unit>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -203,8 +203,8 @@ pub struct RadrootsOperationalListingPublicLocation { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug)] pub struct RadrootsOperationalListingImage { pub url: String, @@ -215,7 +215,7 @@ pub struct RadrootsOperationalListingImage { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] #[derive(Clone, Debug)] pub struct RadrootsOperationalListingImageSize { pub w: u32, diff --git a/crates/event/src/order.rs b/crates/event/src/order.rs @@ -130,9 +130,9 @@ impl RadrootsOrderEconomics { } } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsOrderRequest")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr(all(test, feature = "std"), dto(ts(name = "RadrootsOrderRequest")))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -141,9 +141,9 @@ impl RadrootsOrderEconomics { pub struct RadrootsOrderRequest { pub order_id: RadrootsOrderId, pub listing_addr: RadrootsClassifiedListingAddress, - #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] + #[cfg_attr(all(test, feature = "std"), dto(as = "string"))] pub buyer_pubkey: PublicKey, - #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] + #[cfg_attr(all(test, feature = "std"), dto(as = "string"))] pub seller_pubkey: PublicKey, pub items: Vec<RadrootsOrderItem>, pub economics: RadrootsOrderEconomics, @@ -159,10 +159,10 @@ impl RadrootsOrderRequest { } } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( - feature = "dto-bindgen", + all(test, feature = "std"), dto(ts(name = "RadrootsOrderInventoryCommitment")) )] #[cfg_attr( @@ -175,10 +175,10 @@ pub struct RadrootsOrderInventoryCommitment { pub bin_count: u32, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( - feature = "dto-bindgen", + all(test, feature = "std"), dto(ts(name = "RadrootsOrderDecisionOutcome")) )] #[cfg_attr( @@ -210,9 +210,9 @@ impl RadrootsOrderDecisionOutcome { } } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsOrderDecision")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr(all(test, feature = "std"), dto(ts(name = "RadrootsOrderDecision")))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -221,9 +221,9 @@ impl RadrootsOrderDecisionOutcome { pub struct RadrootsOrderDecision { pub order_id: RadrootsOrderId, pub listing_addr: RadrootsClassifiedListingAddress, - #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] + #[cfg_attr(all(test, feature = "std"), dto(as = "string"))] pub buyer_pubkey: PublicKey, - #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] + #[cfg_attr(all(test, feature = "std"), dto(as = "string"))] pub seller_pubkey: PublicKey, pub decision: RadrootsOrderDecisionOutcome, } @@ -236,9 +236,12 @@ impl RadrootsOrderDecision { } } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsOrderCancellation")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr( + all(test, feature = "std"), + dto(ts(name = "RadrootsOrderCancellation")) +)] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -247,9 +250,9 @@ impl RadrootsOrderDecision { pub struct RadrootsOrderCancellation { pub order_id: RadrootsOrderId, pub listing_addr: RadrootsClassifiedListingAddress, - #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] + #[cfg_attr(all(test, feature = "std"), dto(as = "string"))] pub buyer_pubkey: PublicKey, - #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] + #[cfg_attr(all(test, feature = "std"), dto(as = "string"))] pub seller_pubkey: PublicKey, pub reason: String, } @@ -262,9 +265,9 @@ impl RadrootsOrderCancellation { } } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsCommercialDomain")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr(all(test, feature = "std"), dto(ts(name = "RadrootsCommercialDomain")))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -276,9 +279,9 @@ pub enum RadrootsCommercialDomain { Listing, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsOrderEventType")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr(all(test, feature = "std"), dto(ts(name = "RadrootsOrderEventType")))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/order_economics.rs b/crates/event/src/order_economics.rs @@ -7,9 +7,9 @@ use radroots_core::{Currency, Decimal, Money, Unit}; use crate::id::{RadrootsInventoryBinId, RadrootsOrderQuoteId}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsOrderItem")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr(all(test, feature = "std"), dto(ts(name = "RadrootsOrderItem")))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -20,9 +20,12 @@ pub struct RadrootsOrderItem { pub bin_count: u32, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsOrderPricingBasis")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr( + all(test, feature = "std"), + dto(ts(name = "RadrootsOrderPricingBasis")) +)] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -34,10 +37,10 @@ pub enum RadrootsOrderPricingBasis { ListingEvent, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( - feature = "dto-bindgen", + all(test, feature = "std"), dto(ts(name = "RadrootsOrderEconomicLineKind")) )] #[cfg_attr( @@ -55,9 +58,12 @@ pub enum RadrootsOrderEconomicLineKind { RevisionAdjustment, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsOrderEconomicActor")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr( + all(test, feature = "std"), + dto(ts(name = "RadrootsOrderEconomicActor")) +)] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -71,9 +77,12 @@ pub enum RadrootsOrderEconomicActor { Seller, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsOrderEconomicEffect")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr( + all(test, feature = "std"), + dto(ts(name = "RadrootsOrderEconomicEffect")) +)] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -91,27 +100,30 @@ pub enum RadrootsOrderEconomicEffect { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsOrderEconomicItem { pub bin_id: RadrootsInventoryBinId, pub bin_count: u32, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Decimal")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Decimal")))] pub quantity_amount: Decimal, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Unit")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Unit")))] pub quantity_unit: Unit, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Decimal")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Decimal")))] pub unit_price_amount: Decimal, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Currency")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Currency")))] pub unit_price_currency: Currency, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub line_subtotal: Money, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsOrderEconomicLine")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr( + all(test, feature = "std"), + dto(ts(name = "RadrootsOrderEconomicLine")) +)] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -122,27 +134,30 @@ pub struct RadrootsOrderEconomicLine { pub kind: RadrootsOrderEconomicLineKind, pub actor: RadrootsOrderEconomicActor, pub effect: RadrootsOrderEconomicEffect, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub amount: Money, pub reason: String, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] -#[cfg_attr(feature = "dto-bindgen", dto(ts(name = "RadrootsOrderEconomicTotals")))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] +#[cfg_attr( + all(test, feature = "std"), + dto(ts(name = "RadrootsOrderEconomicTotals")) +)] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsOrderEconomicTotals { - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub subtotal: Money, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub discount_total: Money, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub adjustment_total: Money, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub total: Money, } @@ -150,24 +165,24 @@ pub struct RadrootsOrderEconomicTotals { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsOrderEconomics { pub quote_id: RadrootsOrderQuoteId, pub quote_version: u32, pub pricing_basis: RadrootsOrderPricingBasis, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Currency")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Currency")))] pub currency: Currency, pub items: Vec<RadrootsOrderEconomicItem>, pub discounts: Vec<RadrootsOrderEconomicLine>, pub adjustments: Vec<RadrootsOrderEconomicLine>, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub subtotal: Money, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub discount_total: Money, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub adjustment_total: Money, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Money")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Money")))] pub total: Money, } diff --git a/crates/event/src/plot.rs b/crates/event/src/plot.rs @@ -3,8 +3,8 @@ use crate::{farm::RadrootsFarmRef, farm::change_set::RadrootsGcsLocation}; #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -15,8 +15,8 @@ pub struct RadrootsPlotRef { pub d_tag: String, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -31,8 +31,8 @@ pub struct RadrootsPlot { pub tags: Option<Vec<String>>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/post.rs b/crates/event/src/post.rs @@ -42,8 +42,8 @@ const RADROOTS_POST_SIGNED_EVENT_FIXED_MAX_BYTES: usize = "{\"id\":\"".len() any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug)] /// Compatibility projection for the legacy social post decoder. /// diff --git a/crates/event/src/profile.rs b/crates/event/src/profile.rs @@ -15,8 +15,8 @@ pub const RADROOTS_PROFILE_TYPE_TAG_RADROOTSD: &str = "radroots:type:radrootsd"; pub const RADROOTS_PROFILE_METADATA_MAX_CONTENT_BYTES: usize = crate::wire::v1::DEFAULT_CONTENT_MAX_BYTES; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/reaction.rs b/crates/event/src/reaction.rs @@ -7,8 +7,8 @@ use alloc::string::String; any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug)] pub struct RadrootsReaction { pub target: RadrootsSocialTarget, diff --git a/crates/event/src/relay_document.rs b/crates/event/src/relay_document.rs @@ -1,8 +1,8 @@ #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/resource_area.rs b/crates/event/src/resource_area.rs @@ -5,8 +5,8 @@ use crate::farm::change_set::RadrootsGcsLocation; #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -20,8 +20,8 @@ pub struct RadrootsResourceArea { pub tags: Option<Vec<String>>, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -32,8 +32,8 @@ pub struct RadrootsResourceAreaRef { pub d_tag: String, } -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/resource_cap.rs b/crates/event/src/resource_cap.rs @@ -7,8 +7,8 @@ use crate::farm::resource_area::RadrootsResourceAreaRef; #[cfg(not(feature = "std"))] use alloc::{string::String, vec::Vec}; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) @@ -23,22 +23,22 @@ pub struct RadrootsResourceHarvestProduct { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug)] pub struct RadrootsResourceHarvestCap { pub d_tag: String, pub resource_area: RadrootsResourceAreaRef, pub product: RadrootsResourceHarvestProduct, - #[cfg_attr(feature = "dto-bindgen", dto(int = "json_string"))] + #[cfg_attr(all(test, feature = "std"), dto(int = "json_string"))] pub start: u64, - #[cfg_attr(feature = "dto-bindgen", dto(int = "json_string"))] + #[cfg_attr(all(test, feature = "std"), dto(int = "json_string"))] pub end: u64, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Quantity")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Quantity")))] pub cap_quantity: Quantity, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Decimal")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Decimal")))] pub display_amount: Option<Decimal>, - #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Unit")))] + #[cfg_attr(all(test, feature = "std"), dto(ts(type = "Unit")))] pub display_unit: Option<Unit>, pub display_label: Option<String>, pub tags: Option<Vec<String>>, diff --git a/crates/event/src/seal.rs b/crates/event/src/seal.rs @@ -3,8 +3,8 @@ #[cfg(not(feature = "std"))] use alloc::string::String; -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) diff --git a/crates/event/src/social.rs b/crates/event/src/social.rs @@ -9,7 +9,7 @@ use alloc::{string::String, vec::Vec}; any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] #[cfg_attr( any(feature = "serde", test), serde(rename_all = "snake_case", tag = "kind") @@ -39,7 +39,7 @@ pub enum RadrootsSocialTarget { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] #[derive(Clone, Debug, Default)] pub struct RadrootsSocialFarmAnchor { pub farm: RadrootsFarmRef, @@ -50,7 +50,7 @@ pub struct RadrootsSocialFarmAnchor { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct RadrootsSocialLocation { pub name: Option<String>, @@ -61,7 +61,7 @@ pub struct RadrootsSocialLocation { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct RadrootsSocialMediaDimensions { pub width: u32, @@ -72,7 +72,7 @@ pub struct RadrootsSocialMediaDimensions { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct RadrootsSocialMediaThumbnail { pub url: String, @@ -83,14 +83,14 @@ pub struct RadrootsSocialMediaThumbnail { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] #[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct RadrootsSocialMediaMetadata { pub url: Option<String>, pub mime_type: Option<String>, pub sha256: Option<String>, pub original_sha256: Option<String>, - #[cfg_attr(feature = "dto-bindgen", dto(int = "json_string"))] + #[cfg_attr(all(test, feature = "std"), dto(int = "json_string"))] pub size: Option<u64>, pub dimensions: Option<RadrootsSocialMediaDimensions>, pub blurhash: Option<String>, diff --git a/crates/event/src/tag.rs b/crates/event/src/tag.rs @@ -14,12 +14,12 @@ pub mod relay_hint; any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsEventRef { pub id: String, - #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] + #[cfg_attr(all(test, feature = "std"), dto(as = "string"))] pub author: radroots_identity::PublicKey, pub kind: u32, pub d_tag: Option<String>, @@ -30,8 +30,8 @@ pub struct RadrootsEventRef { any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsEventPtr { pub id: String, diff --git a/crates/event/src/trade_validation.rs b/crates/event/src/trade_validation.rs @@ -9,8 +9,8 @@ use crate::listing::operational::RadrootsOperationalListingParseError; any(feature = "serde", test), derive(serde::Serialize, serde::Deserialize) )] -#[cfg_attr(feature = "dto-bindgen", derive(dto_bindgen::Dto))] -#[cfg_attr(feature = "dto-bindgen", dto(export))] +#[cfg_attr(all(test, feature = "std"), derive(dto_bindgen::Dto))] +#[cfg_attr(all(test, feature = "std"), dto(export))] #[cfg_attr( feature = "serde", serde(rename_all = "snake_case", tag = "kind", content = "amount") diff --git a/crates/event/src/verification.rs b/crates/event/src/verification.rs @@ -79,13 +79,32 @@ impl IdVerifiedEvent { self.0 } - /// Verifies the BIP-340 signature over the already verified event ID. - pub fn verify_signature(self) -> Result<SignatureVerifiedEvent, Error> { - verify_signature(&self.0)?; + /// Uses an explicit host capability to verify the signature over the + /// already verified event ID. + pub fn verify_signature<V>(self, verifier: &V) -> Result<SignatureVerifiedEvent, Error> + where + V: SignatureVerifier + ?Sized, + { + verifier.verify_signature(&self.0)?; Ok(SignatureVerifiedEvent(self.0)) } } +/// **Host SPI:** verifies an event signature. +/// +/// The event crate owns the verification state transition, while concrete +/// cryptographic implementations belong to codec or signing crates. Downstream +/// implementations are supported and must normalize rejection to +/// [`Error::SignatureInvalid`]. The trait is dyn-compatible and requires +/// `Send + Sync`; verification is a synchronous, deterministic, side-effect-free +/// operation with no cancellation or deadline boundary and must not durably +/// commit state. +pub trait SignatureVerifier: Send + Sync { + /// Returns success only when the envelope's signature is valid for its + /// already verified canonical event identifier. + fn verify_signature(&self, event: &RadrootsEventEnvelope) -> Result<(), Error>; +} + /// An event whose canonical identifier and BIP-340 signature are verified. /// /// ```compile_fail @@ -177,7 +196,6 @@ pub enum Error { actual: RadrootsEventId, }, SignatureInvalid, - SignatureVerificationUnavailable, ContractValidation(RadrootsContractValidationError), } @@ -188,7 +206,6 @@ impl Error { Self::MalformedEnvelope => "malformed_envelope", Self::IdMismatch { .. } => "id_mismatch", Self::SignatureInvalid => "signature_invalid", - Self::SignatureVerificationUnavailable => "signature_verification_unavailable", Self::ContractValidation(_) => "contract_validation", } } @@ -205,9 +222,6 @@ impl fmt::Display for Error { actual.to_hex() ), Self::SignatureInvalid => formatter.write_str("invalid NIP-01 event signature"), - Self::SignatureVerificationUnavailable => { - formatter.write_str("NIP-01 signature verification is unavailable") - } Self::ContractValidation(error) => { write!( formatter, @@ -222,30 +236,27 @@ impl fmt::Display for Error { #[cfg(feature = "std")] impl std::error::Error for Error {} -#[cfg(feature = "signature")] -fn verify_signature(event: &RadrootsEventEnvelope) -> Result<(), Error> { - use secp256k1::{Message, Secp256k1, XOnlyPublicKey, schnorr::Signature}; - - let message = Message::from_digest(*event.id().as_bytes()); - let public_key = XOnlyPublicKey::from_slice(&event.author().into_bytes()) - .map_err(|_| Error::MalformedEnvelope)?; - let signature = - Signature::from_slice(event.sig().as_bytes()).map_err(|_| Error::SignatureInvalid)?; - Secp256k1::verification_only() - .verify_schnorr(&signature, &message, &public_key) - .map_err(|_| Error::SignatureInvalid) -} - -#[cfg(not(feature = "signature"))] -fn verify_signature(_event: &RadrootsEventEnvelope) -> Result<(), Error> { - Err(Error::SignatureVerificationUnavailable) -} - #[cfg(test)] mod tests { use super::*; use crate::envelope::RadrootsEventEnvelopeParts; + struct Accept; + + impl SignatureVerifier for Accept { + fn verify_signature(&self, _event: &RadrootsEventEnvelope) -> Result<(), Error> { + Ok(()) + } + } + + struct Reject; + + impl SignatureVerifier for Reject { + fn verify_signature(&self, _event: &RadrootsEventEnvelope) -> Result<(), Error> { + Err(Error::SignatureInvalid) + } + } + fn valid_profile_event() -> RadrootsEventEnvelope { RadrootsEventEnvelope::new(RadrootsEventEnvelopeParts { id: "762bee187e9e645b81ec26ade05a69b5e8398caf527be8de0d9a45311ed0c7a0" @@ -272,27 +283,26 @@ mod tests { ); } - #[cfg(feature = "signature")] #[test] fn positive_vector_reaches_contract_validated_state() { + let verifier: &dyn SignatureVerifier = &Accept; let validated = RawEvent::new(valid_profile_event()) .verify_id() .expect("verified id") - .verify_signature() + .verify_signature(verifier) .expect("verified signature") .validate_contract() .expect("validated contract"); assert_eq!(validated.contract_id(), "radroots.profile.metadata.v1"); } - #[cfg(not(feature = "signature"))] #[test] - fn signature_transition_fails_closed_when_capability_is_disabled() { + fn signature_transition_fails_closed_when_verifier_rejects() { let error = RawEvent::new(valid_profile_event()) .verify_id() .expect("verified id") - .verify_signature() - .expect_err("signature capability must be unavailable"); - assert_eq!(error, Error::SignatureVerificationUnavailable); + .verify_signature(&Reject) + .expect_err("signature must be rejected"); + assert_eq!(error, Error::SignatureInvalid); } } diff --git a/crates/event/tests/package_boundary.rs b/crates/event/tests/package_boundary.rs @@ -43,6 +43,19 @@ fn manifest_has_final_identity_and_required_radroots_dependencies() { assert!( MANIFEST.contains("radroots_protocol = { workspace = true, default-features = false }") ); + assert_eq!( + table_keys(MANIFEST, "[features]"), + BTreeSet::from(["default", "knowledge", "serde", "std"]), + "radroots_event must expose only its approved user-visible feature vocabulary" + ); + for implementation_feature in ["dto-bindgen", "fixture", "knowledge-nip54", "signature"] { + assert!( + !table_keys(MANIFEST, "[features]").contains(implementation_feature), + "implementation feature `{implementation_feature}` must remain private" + ); + } + assert!(!table_keys(MANIFEST, "[dependencies]").contains("dto_bindgen")); + assert!(!table_keys(MANIFEST, "[dependencies]").contains("secp256k1")); } #[test] @@ -130,6 +143,10 @@ fn verification_typestates_are_native_private_and_policy_gated() { assert!(verification.contains("pub struct SignatureVerifiedEvent(RadrootsEventEnvelope);")); assert!(admission.contains("policy.admit(&self)?;")); assert!(admission.contains("policy.make_visible(&self)?;")); + assert!(verification.contains("pub trait SignatureVerifier: Send + Sync")); + assert!(verification.contains("verifier.verify_signature(&self.0)?;")); + assert!(!verification.contains("secp256k1")); + assert!(!verification.contains("SignatureVerificationUnavailable")); assert!(!verification.contains("impl From<RawEvent> for IdVerifiedEvent")); assert!(!verification.contains("impl From<IdVerifiedEvent> for SignatureVerifiedEvent")); assert!(!admission.contains("impl From<ContractValidatedEvent> for AdmittedEvent")); diff --git a/crates/event_codec/Cargo.toml b/crates/event_codec/Cargo.toml @@ -32,7 +32,7 @@ serde = [ serde_json = ["serde", "dep:serde_json"] nostr = ["dep:nostr", "std"] knowledge = ["serde_json", "radroots_event/knowledge"] -knowledge-nip54 = ["knowledge", "radroots_event/knowledge-nip54"] +knowledge-nip54 = ["knowledge"] contract-manifest = ["knowledge", "dep:hex", "dep:sha2"] [dependencies] diff --git a/crates/event_store/contracts/source_maintenance_v1.manifest.json b/crates/event_store/contracts/source_maintenance_v1.manifest.json @@ -257,8 +257,8 @@ { "role": "event_public_surface", "path": "crates/event/src/lib.rs", - "byte_length": 1967, - "sha256": "b686e22f25e86b4cc3c5915d507b4d8681ba83026bfd350e970ee12281e94fb3", + "byte_length": 1993, + "sha256": "d7a869dead70892257c0a7a287ddc086c339242f9d8d22c384878315226fe050", "hash_algorithm": "sha256_bytes_v1" }, { @@ -278,22 +278,22 @@ { "role": "event_envelope_authority", "path": "crates/event/src/envelope.rs", - "byte_length": 31224, - "sha256": "34c91001d301db1ac9207da41fb4ce4259bc7f758110d1debeb940670c2540ee", + "byte_length": 31248, + "sha256": "3105d9cc32779b8c75bfc272f83981cc0036884c78917168389850af7aecc4cd", "hash_algorithm": "sha256_bytes_v1" }, { "role": "event_verification_typestate_authority", "path": "crates/event/src/verification.rs", - "byte_length": 9469, - "sha256": "479610afcfe1f7c0c475fe2539eef9f6a0b329c6e5c6fd2dbab3d9da7d7cbcd5", + "byte_length": 9645, + "sha256": "8512710b2730b87c4630f140707d144f3f196685eaa26715f0ee7c99d0d3c6d2", "hash_algorithm": "sha256_bytes_v1" }, { "role": "event_admission_typestate_authority", "path": "crates/event/src/admission.rs", - "byte_length": 5809, - "sha256": "8caf75f69994e9710b4e8f82abface29e752dd581c012e5e20452c82d21c2d01", + "byte_length": 5975, + "sha256": "aaa5fc73146e521cdc0598c91bafa5103cfeef30dc4e66b6d71da3b76d9f8dfa", "hash_algorithm": "sha256_bytes_v1" }, { @@ -313,8 +313,8 @@ { "role": "event_ids_authority", "path": "crates/event/src/id.rs", - "byte_length": 51746, - "sha256": "a4a669b3ff02545af0625ee19c645cc41fb0a5176c000e7aecf49e37585a4123", + "byte_length": 51758, + "sha256": "8b9a2da028e9621c660dde3c40a34713e7e0e8b3fe66b64aa18de6a6e666db45", "hash_algorithm": "sha256_bytes_v1" }, { @@ -341,8 +341,8 @@ { "role": "event_draft_authority", "path": "crates/event/src/draft.rs", - "byte_length": 58672, - "sha256": "417842e7391e9a3187be20d8b936d83469148db1cbf0c61afcf88b87cf1a88be", + "byte_length": 53436, + "sha256": "1eeefbcb9467eb92a9640b3dbd36faa8d98afd20e26d8a3603646a5131be3196", "hash_algorithm": "sha256_bytes_v1" }, { @@ -362,15 +362,15 @@ { "role": "event_profile_authority", "path": "crates/event/src/profile.rs", - "byte_length": 18927, - "sha256": "a4c0afeed75beea9ba44ec6e487582dbcd1116e7e092a6d5808dc4fbdea5ac73", + "byte_length": 18933, + "sha256": "8f75af27179d62e09da9c4d578e1bbf9e4cda71167888f8ae48ea3d8a9e8fa38", "hash_algorithm": "sha256_bytes_v1" }, { "role": "event_post_authority", "path": "crates/event/src/post.rs", - "byte_length": 23129, - "sha256": "788fef2652dbb990ceca2bb5c80aa5fa1efc11d041f9bdf43998fbdff77745b6", + "byte_length": 23135, + "sha256": "8671cb3c4da0e2ea68f95ad99688dba209c6206296300394a7d6e771f7bfc3ed", "hash_algorithm": "sha256_bytes_v1" }, { @@ -411,8 +411,8 @@ { "role": "event_social_authority", "path": "crates/event/src/social.rs", - "byte_length": 6263, - "sha256": "10c4d4f7b078355c97f0b701f60a280123f2d9c335aeabfc733db468d4a9d290", + "byte_length": 6284, + "sha256": "9db55b9eaa8b712430ecd7b4430e3ed50f3224a4a4c2537f9741e3026f4a1857", "hash_algorithm": "sha256_bytes_v1" }, { diff --git a/crates/event_store/contracts/source_maintenance_v1.manifest.sha256 b/crates/event_store/contracts/source_maintenance_v1.manifest.sha256 @@ -1 +1 @@ -a349dd1037306c7060f95d6edc0ef71306b030fbf915af7e90d7ed8c65805f27 +666e233dc711f8dc03d4794339dbd78cd1c6fc8659111eb836218c8bc4b11cbf diff --git a/crates/event_store/src/generated/source_maintenance_manifest.rs b/crates/event_store/src/generated/source_maintenance_manifest.rs @@ -1,8 +1,8 @@ // @generated by `cargo xtask contract source-maintenance-manifest --write`; do not edit. -pub(crate) const SOURCE_MAINTENANCE_MANIFEST_JSON: &str = "{\n \"schema_version\": 1,\n \"contract_id\": \"radroots_event_store.source_maintenance_v1\",\n \"hook_id\": \"source_maintenance_v1\",\n \"manifest_schema\": {\n \"path\": \"crates/event_store/contracts/source_maintenance_v1.manifest.schema.json\",\n \"byte_length\": 12315,\n \"sha256\": \"96ea98a5abf3348b61565954cd34f2c622411d8dd34205ef04134bbe0e3d3f2b\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n \"predecessor\": {\n \"hook_id\": \"food_availability_projection_v1\",\n \"manifest\": {\n \"path\": \"crates/event_store/contracts/food_availability_projection_v1.manifest.json\",\n \"byte_length\": 17455,\n \"sha256\": \"02dfe1b450fbdac16e718888215b4dd5c85d8975440fa21e8f439fb24c2b2990\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n }\n },\n \"migration\": {\n \"version\": 4,\n \"name\": \"source_maintenance\",\n \"up\": {\n \"path\": \"crates/event_store/migrations/0004_source_maintenance.up.sql\",\n \"byte_length\": 19841,\n \"sha256\": \"ab2724188f8d08c897eebea2533a635e7c74282a25e84e4c0c37e78b08837a43\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n \"down\": {\n \"path\": \"crates/event_store/migrations/0004_source_maintenance.down.sql\",\n \"byte_length\": 5172,\n \"sha256\": \"fe44fd53c51545c08ea479b385e6781079dab70fc63da2a3c205d727a00ce860\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n \"schema_sha256\": \"074f85b663444ac150239ecd8441ea4a96ad83a798a55e22d2e5e2f7ee943a8c\",\n \"catalog\": {\n \"objects\": [\n \"radroots_event_store_source_capacity_delete_guard\",\n \"radroots_event_store_source_capacity_insert_guard\",\n \"radroots_event_store_source_capacity_marker_close_guard\",\n \"radroots_event_store_source_capacity_update_guard\",\n \"radroots_event_store_source_capacity_v1\",\n \"radroots_event_store_source_generation_capacity_advance\",\n \"radroots_event_store_source_generation_capacity_guard\"\n ],\n \"replaced_objects\": [\n \"radroots_event_store_food_availability_image_delete_guard\",\n \"radroots_event_store_food_availability_projection_delete_guard\",\n \"radroots_event_store_source_rebuild_marker_insert_guard\"\n ],\n \"tables\": [\n \"radroots_event_store_source_capacity_v1\"\n ],\n \"fts5_tables\": []\n }\n },\n \"source_maintenance\": {\n \"version\": 1,\n \"event_contract_registry_version\": 7,\n \"capacity_authority_id\": \"radroots_event_store_source_capacity_v1\",\n \"accounting\": {\n \"algorithm\": \"sqlite_cast_blob_octet_sum_v1\",\n \"raw_event_columns\": [\n \"event_id\",\n \"pubkey\",\n \"tags_json\",\n \"content\",\n \"sig\",\n \"raw_json\"\n ],\n \"raw_tag_columns\": [\n \"event_id\",\n \"tag_name\",\n \"tag_value\",\n \"tag_json\"\n ],\n \"nullable_raw_tag_columns\": [\n \"tag_value\"\n ]\n },\n \"limits\": {\n \"raw_events\": 25000,\n \"raw_tags\": 250000,\n \"raw_event_text_bytes\": 67108864,\n \"raw_tag_text_bytes\": 33554432,\n \"retained_source_generations\": 8\n },\n \"reopen_validation\": {\n \"mode\": \"bounded_full_raw_recount_v1\",\n \"raw_event_rejection_scan_bound\": 25001,\n \"raw_tag_rejection_scan_bound\": 250001,\n \"generation_history_validation\": \"bounded_count_plus_active_ordinal_v1\",\n \"retained_generation_rejection_scan_bound\": 9\n },\n \"rebuild_seal\": {\n \"nip09_hook_id\": \"nip09_reconciliation_v1\",\n \"nip09_manifest_sha256\": \"74af832420ffbaa9805e89df3c0b34f126a443e1598f757e3372f407f9003b77\",\n \"food_hook_id\": \"food_availability_projection_v1\",\n \"food_manifest_sha256\": \"02dfe1b450fbdac16e718888215b4dd5c85d8975440fa21e8f439fb24c2b2990\",\n \"food_scope_fingerprint_sha256\": \"8b63c5ddc48a2cc7db69295238b96d5f814dba50427c80b4d0079f061e6d3de0\",\n \"active_generation_authority\": \"radroots_event_store_source_state\",\n \"marker_close_authority\": \"radroots_event_store_source_capacity_marker_close_guard\"\n }\n },\n \"entry_points\": [\n {\n \"role\": \"migration_registry\",\n \"rust_path\": \"radroots_event_store::migrations::EVENT_STORE_MIGRATIONS[3]\"\n },\n {\n \"role\": \"migration_apply_hook\",\n \"rust_path\": \"radroots_event_store::schema::apply_migration_hook\"\n },\n {\n \"role\": \"migration_validation_hook\",\n \"rust_path\": \"radroots_event_store::schema::validate_migration_hook_state\"\n },\n {\n \"role\": \"capacity_query\",\n \"rust_path\": \"radroots_event_store::RadrootsEventStore::source_capacity_v1\"\n },\n {\n \"role\": \"raw_append_preflight\",\n \"rust_path\": \"radroots_event_store::source_maintenance_v1::preflight_unique_raw_source_append_v1\"\n },\n {\n \"role\": \"raw_append_advance\",\n \"rust_path\": \"radroots_event_store::source_maintenance_v1::advance_source_capacity_after_insert_v1\"\n },\n {\n \"role\": \"generation_append_preflight\",\n \"rust_path\": \"radroots_event_store::source_maintenance_v1::preflight_source_generation_append_v1\"\n },\n {\n \"role\": \"generation_rebuild_bind\",\n \"rust_path\": \"radroots_event_store::source_maintenance_v1::bind_source_capacity_to_generation_v1\"\n },\n {\n \"role\": \"sqlite_encoding_preflight\",\n \"rust_path\": \"radroots_event_store::store::validate_main_database_encoding\"\n },\n {\n \"role\": \"source_generation_history_rollback_guard\",\n \"rust_path\": \"radroots_event_store::schema::validate_rollback_preserves_source_generation_history\"\n },\n {\n \"role\": \"result_vector_executor\",\n \"rust_path\": \"source_maintenance_v1_result_vector\"\n }\n ],\n \"source_files\": [\n {\n \"role\": \"workspace_dependency_authority\",\n \"path\": \"Cargo.toml\",\n \"byte_length\": 12411,\n \"sha256\": \"cad96f080b0cc9ac7ffda703c8807540c9cf89f47a2299b141e6e7949714bf9f\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_currency_value_authority\",\n \"path\": \"crates/core/src/currency.rs\",\n \"byte_length\": 4142,\n \"sha256\": \"42e6da2d8d2fdd6955dc2d83e98dd00266e02bc910b69923b117662c05089d14\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_decimal_value_authority\",\n \"path\": \"crates/core/src/decimal.rs\",\n \"byte_length\": 7839,\n \"sha256\": \"4b1d681a92d7a9e074bee7e1f20eb1499bb05bfc6528a6c9ba69fa7d00416550\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_money_value_authority\",\n \"path\": \"crates/core/src/money.rs\",\n \"byte_length\": 8025,\n \"sha256\": \"3f30bc21e21951a62fdc5d4033736ed42a883df590e8403940775bd2edfeebc5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_percent_value_authority\",\n \"path\": \"crates/core/src/percent.rs\",\n \"byte_length\": 2652,\n \"sha256\": \"42ceab109881329f3539d06a0ee0381ab4359985fe185a18d58a9c9558c5eb7f\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_quantity_value_authority\",\n \"path\": \"crates/core/src/quantity.rs\",\n \"byte_length\": 6785,\n \"sha256\": \"d14e619da3829cdaf3ca7385fb892d330c286c1e21455c135c37518cbb588b5f\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_quantity_price_value_authority\",\n \"path\": \"crates/core/src/quantity_price.rs\",\n \"byte_length\": 7061,\n \"sha256\": \"d60f70377099470ed283f45868a5119d7bb46143cb250b5082a4c038ba7f6cdc\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_unit_value_authority\",\n \"path\": \"crates/core/src/unit.rs\",\n \"byte_length\": 10023,\n \"sha256\": \"550e9582b6a5290aac3f637b83853b21fefcbab92c432d067c83448f4b2fe3e9\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_public_surface\",\n \"path\": \"crates/blossom/src/lib.rs\",\n \"byte_length\": 510,\n \"sha256\": \"a4dfcbd193457c50c1b0fbfc91bb547981ecd3a6e23cfc6f1030edfb511dc58c\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_authorization_authority\",\n \"path\": \"crates/blossom/src/authorization.rs\",\n \"byte_length\": 39360,\n \"sha256\": \"461947b30516315a342b3b5697599f701d27050888f29f67f5d7a7ad4afa4c28\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_descriptor_authority\",\n \"path\": \"crates/blossom/src/descriptor.rs\",\n \"byte_length\": 13702,\n \"sha256\": \"b2a4ffa760256e1316f70e012d200e2b5f4afd8ede771b85a5147f96b247f599\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_error_authority\",\n \"path\": \"crates/blossom/src/error.rs\",\n \"byte_length\": 17229,\n \"sha256\": \"02af55beacf437040be17d1fc3271d6e2a62915f656ec2dbe06247deef83f95a\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_hash_authority\",\n \"path\": \"crates/blossom/src/hash.rs\",\n \"byte_length\": 11006,\n \"sha256\": \"45eca0d81ac0f46c305a32f81aafcdd90b14679d0614f72862289a6e5d4cb08f\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_media_type_authority\",\n \"path\": \"crates/blossom/src/media_type.rs\",\n \"byte_length\": 2368,\n \"sha256\": \"69db5c0f9fcdd7dbe1f22daa499f65603ae4ce198083dab2c73a36813fa18a46\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_url_authority\",\n \"path\": \"crates/blossom/src/url.rs\",\n \"byte_length\": 14580,\n \"sha256\": \"342c995fcf620e5fb32461a7d8276f5668ba2662890bd32d12780cc9121c6451\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_public_surface\",\n \"path\": \"crates/event/src/lib.rs\",\n \"byte_length\": 1967,\n \"sha256\": \"b686e22f25e86b4cc3c5915d507b4d8681ba83026bfd350e970ee12281e94fb3\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_contract_facade\",\n \"path\": \"crates/event/src/contract.rs\",\n \"byte_length\": 208,\n \"sha256\": \"27466bf36461071931f391c60646a13f7781d19584583166cc54c0eece76d010\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_contract_registry_v7_authority\",\n \"path\": \"crates/event/src/contract/registry_v7.rs\",\n \"byte_length\": 157252,\n \"sha256\": \"4ae8af380fd99c4b9b011981770bb352e104b7bae1784f45b1979f972a97df35\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_envelope_authority\",\n \"path\": \"crates/event/src/envelope.rs\",\n \"byte_length\": 31224,\n \"sha256\": \"34c91001d301db1ac9207da41fb4ce4259bc7f758110d1debeb940670c2540ee\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_verification_typestate_authority\",\n \"path\": \"crates/event/src/verification.rs\",\n \"byte_length\": 9469,\n \"sha256\": \"479610afcfe1f7c0c475fe2539eef9f6a0b329c6e5c6fd2dbab3d9da7d7cbcd5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_admission_typestate_authority\",\n \"path\": \"crates/event/src/admission.rs\",\n \"byte_length\": 5809,\n \"sha256\": \"8caf75f69994e9710b4e8f82abface29e752dd581c012e5e20452c82d21c2d01\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_head_facade\",\n \"path\": \"crates/event/src/event_head.rs\",\n \"byte_length\": 97,\n \"sha256\": \"f761ff3e74c4f5e1e28381db00ce698c633ff048669b22984d14a587482e8e83\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_head_v1_authority\",\n \"path\": \"crates/event/src/event_head/v1.rs\",\n \"byte_length\": 7566,\n \"sha256\": \"6ef7537a1188086e4f414b6c5f398a305c2eca5edd0ee188b4f890f07f3322ff\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_ids_authority\",\n \"path\": \"crates/event/src/id.rs\",\n \"byte_length\": 51746,\n \"sha256\": \"a4a669b3ff02545af0625ee19c645cc41fb0a5176c000e7aecf49e37585a4123\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_trade_authority\",\n \"path\": \"crates/event/src/trade.rs\",\n \"byte_length\": 68665,\n \"sha256\": \"5e1aa8bd20bc13a08e4ebc7e6306365cb74f55e1cec62af135a36eb41146dd45\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_kinds_authority\",\n \"path\": \"crates/event/src/kinds.rs\",\n \"byte_length\": 34961,\n \"sha256\": \"8b3ce6193cab1f7e1587d0c1b2880a81b0aa43c77d89671b602772db37edcebf\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_tags_authority\",\n \"path\": \"crates/event/src/tags.rs\",\n \"byte_length\": 4530,\n \"sha256\": \"cb8f12a639fc72d9238e32495d9e67e928e6627fb8c94ec0a58c5d95e7373cd6\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_draft_authority\",\n \"path\": \"crates/event/src/draft.rs\",\n \"byte_length\": 58672,\n \"sha256\": \"417842e7391e9a3187be20d8b936d83469148db1cbf0c61afcf88b87cf1a88be\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_calendar_authority\",\n \"path\": \"crates/event/src/calendar.rs\",\n \"byte_length\": 103877,\n \"sha256\": \"1e0bb92b32198cea2f39df57c365d4a8c43dea301f452f1309df4078401df7fc\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_classified_listing_authority\",\n \"path\": \"crates/event/src/classified_listing.rs\",\n \"byte_length\": 8236,\n \"sha256\": \"ee022b2aaffd1642c2c1e792c79e8fce353b9edd4d6e49afdebeb74af771187e\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_profile_authority\",\n \"path\": \"crates/event/src/profile.rs\",\n \"byte_length\": 18927,\n \"sha256\": \"a4c0afeed75beea9ba44ec6e487582dbcd1116e7e092a6d5808dc4fbdea5ac73\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_post_authority\",\n \"path\": \"crates/event/src/post.rs\",\n \"byte_length\": 23129,\n \"sha256\": \"788fef2652dbb990ceca2bb5c80aa5fa1efc11d041f9bdf43998fbdff77745b6\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_comment_authority\",\n \"path\": \"crates/event/src/comment.rs\",\n \"byte_length\": 36453,\n \"sha256\": \"159eb5487e67e1a834072333a7f08b38ac15756c46eaeafecaa1574aade0a824\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_food_availability_authority\",\n \"path\": \"crates/event/src/food_availability.rs\",\n \"byte_length\": 45430,\n \"sha256\": \"389dda590888278b0bd95b4e19a597f47e0f573a24e0ac3cb92c63098191a290\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_deletion_authority\",\n \"path\": \"crates/event/src/deletion.rs\",\n \"byte_length\": 31181,\n \"sha256\": \"99cf3d8e61f107602df345c6e2ac60223b9d0389537b231dd1a30a2ed0e64990\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_relay_hint_authority\",\n \"path\": \"crates/event/src/relay_hint.rs\",\n \"byte_length\": 14016,\n \"sha256\": \"095ce5284796eac71b3aa6630718d398a67ff3836a92d80444fc45fb023b4931\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_media_authority\",\n \"path\": \"crates/event/src/media.rs\",\n \"byte_length\": 3574,\n \"sha256\": \"2e91f3b5624dfab990f18abd4dd6194f1205442c798381af6b648aee88de53ee\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_social_authority\",\n \"path\": \"crates/event/src/social.rs\",\n \"byte_length\": 6263,\n \"sha256\": \"10c4d4f7b078355c97f0b701f60a280123f2d9c335aeabfc733db468d4a9d290\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_wire_facade\",\n \"path\": \"crates/event/src/wire.rs\",\n \"byte_length\": 68,\n \"sha256\": \"cb52f6006f7ecd862707d6b048f9fc407e0cd5ebcd3091b3c54e195ffa5cba64\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_wire_v1_authority\",\n \"path\": \"crates/event/src/wire/v1.rs\",\n \"byte_length\": 22132,\n \"sha256\": \"8b18760d655c01c3cbb1d1818b486c6aeae324d262c864fc1ed1297d2ecf1196\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_verification_facade\",\n \"path\": \"crates/event_codec/src/verification.rs\",\n \"byte_length\": 253,\n \"sha256\": \"b49a32df605035c87f295c0a151140d43d2e588c5e11b05183e5fc92993dae0e\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_verification_v1_authority\",\n \"path\": \"crates/event_codec/src/verification/v1.rs\",\n \"byte_length\": 8649,\n \"sha256\": \"1ef3d12f90eb7d35f4cafe36c2cc0bbd33731df278b58c9062fb13934e2a98c8\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_registry_v7_admission_authority\",\n \"path\": \"crates/event_codec/src/admission/registry_v7.rs\",\n \"byte_length\": 5360,\n \"sha256\": \"81b26be497e3314564e88b9e6f21aaaf4dee44d6f37b5e127de561553a660c48\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_profile_inbound_facade\",\n \"path\": \"crates/event_codec/src/profile/inbound.rs\",\n \"byte_length\": 86,\n \"sha256\": \"9994cbca9dcc7450ad133b6b927e7c06bee08ef813652452cc1e56a284c1be10\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_profile_registry_v7_authority\",\n \"path\": \"crates/event_codec/src/profile/inbound/registry_v7.rs\",\n \"byte_length\": 10394,\n \"sha256\": \"c37c225ea8153beb098a39c4a56203aa03382af12646f40cd3f8628663700702\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_post_inbound_facade\",\n \"path\": \"crates/event_codec/src/post/inbound.rs\",\n \"byte_length\": 86,\n \"sha256\": \"9994cbca9dcc7450ad133b6b927e7c06bee08ef813652452cc1e56a284c1be10\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_post_registry_v7_authority\",\n \"path\": \"crates/event_codec/src/post/inbound/registry_v7.rs\",\n \"byte_length\": 16025,\n \"sha256\": \"551380f1b188fbd6ac4cba988426218863ec557eb6022153da89ace2aa40d2c7\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_reply_inbound_facade\",\n \"path\": \"crates/event_codec/src/reply/inbound.rs\",\n \"byte_length\": 86,\n \"sha256\": \"9994cbca9dcc7450ad133b6b927e7c06bee08ef813652452cc1e56a284c1be10\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_reply_registry_v7_authority\",\n \"path\": \"crates/event_codec/src/reply/inbound/registry_v7.rs\",\n \"byte_length\": 26825,\n \"sha256\": \"3abb33e8d20097e41d2c81f10d023c3293390718915eb5087c663676d322bfce\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_comment_inbound_facade\",\n \"path\": \"crates/event_codec/src/comment/inbound.rs\",\n \"byte_length\": 86,\n \"sha256\": \"9994cbca9dcc7450ad133b6b927e7c06bee08ef813652452cc1e56a284c1be10\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_comment_registry_v7_authority\",\n \"path\": \"crates/event_codec/src/comment/inbound/registry_v7.rs\",\n \"byte_length\": 53802,\n \"sha256\": \"32413b80b7472cfb024984ae0e0ea67c7a42ebc98b2257d6c9d16a87f2d84ba0\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_deletion_facade\",\n \"path\": \"crates/event_codec/src/deletion/mod.rs\",\n \"byte_length\": 115,\n \"sha256\": \"17d56f82ddb0a86bc97abbcf3e037fe460ea31fff2548f527be4bf004dac3a95\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_deletion_reconciliation_v1_authority\",\n \"path\": \"crates/event_codec/src/deletion/reconciliation_v1.rs\",\n \"byte_length\": 38345,\n \"sha256\": \"dc6c55e5af2cfab0149dbb763cafa603566772fdae378988a583162c95438496\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_error_authority\",\n \"path\": \"crates/event_codec/src/error.rs\",\n \"byte_length\": 3698,\n \"sha256\": \"b20b70056ea2b48a9e3a4f7697a76e87d5f3c445641bfcc7b61d72605b146ce5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_food_admission_authority\",\n \"path\": \"crates/event_codec/src/food_availability/admission.rs\",\n \"byte_length\": 5815,\n \"sha256\": \"96aea4bdd6938d26f03fa9bcb94e3ce8608bf674895961f8bf237554796debba\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_food_inbound_facade\",\n \"path\": \"crates/event_codec/src/food_availability/inbound.rs\",\n \"byte_length\": 86,\n \"sha256\": \"9994cbca9dcc7450ad133b6b927e7c06bee08ef813652452cc1e56a284c1be10\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_food_registry_v7_authority\",\n \"path\": \"crates/event_codec/src/food_availability/inbound/registry_v7.rs\",\n \"byte_length\": 26785,\n \"sha256\": \"d06807c62333d0b1b8496b51390210b0738ee92b1748bc7e31bd4b095fb62ed2\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_job_traits_authority\",\n \"path\": \"crates/event_codec/src/job/traits.rs\",\n \"byte_length\": 5101,\n \"sha256\": \"bc198764f2825b4b1441781493e13fc7088e7bdd04f70690480f387604b0bd47\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_store_dependency_authority\",\n \"path\": \"crates/event_store/Cargo.toml\",\n \"byte_length\": 1567,\n \"sha256\": \"46e03d3c758e1116638021a0499dfa588b4266498e0d50cfa758f9bef9bcfeb3\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_store_error_and_limits\",\n \"path\": \"crates/event_store/src/error.rs\",\n \"byte_length\": 19516,\n \"sha256\": \"384f81d13dd5a837dd336b1f990fd79718f05ceb9c9272d0e8cd14c9618e4c8b\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"generated_descriptor_registration\",\n \"path\": \"crates/event_store/src/generated.rs\",\n \"byte_length\": 144,\n \"sha256\": \"6b0a8d6f249bd4fc3f878d37cb5e418680f0f1be2d9eec2518dedf03efc47121\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"public_surface\",\n \"path\": \"crates/event_store/src/lib.rs\",\n \"byte_length\": 3844,\n \"sha256\": \"3cd9653bcb752fb3c4442d4904b98a0a6208011a9a238125b7b7073d7f4e312b\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"migration_registry\",\n \"path\": \"crates/event_store/src/migrations.rs\",\n \"byte_length\": 73585,\n \"sha256\": \"a47477d04759ec6e71d14d3d05459864eae78fce0e3c2481a1b03147f04637f7\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_model_public_surface\",\n \"path\": \"crates/event_store/src/model.rs\",\n \"byte_length\": 33624,\n \"sha256\": \"b155993cf03f19f392068188e14adad5b5b139996434d1076a86428e1cce4255\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_store_reconciliation_v1_model\",\n \"path\": \"crates/event_store/src/model/reconciliation_v1.rs\",\n \"byte_length\": 11148,\n \"sha256\": \"37f9edd8e1b5ae3f696bc911e8a7eda0a6eac4e05d2d9e6799f041d0abf73b50\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_store_reconciliation_v1_ingest_model\",\n \"path\": \"crates/event_store/src/model/ingest_reconciliation_v1.rs\",\n \"byte_length\": 1626,\n \"sha256\": \"47bf13b3fc0f8a913a660f7d655413de0f6b90568bc4acc510aa6bd741bab47b\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"addressable_transition_feed_model\",\n \"path\": \"crates/event_store/src/model/addressable_transition_feed_v1.rs\",\n \"byte_length\": 22277,\n \"sha256\": \"3fbccc2ab44ceb66ad459ebb56c87aa250732b28248716128e91ca42d7c7656d\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"current_visibility_model\",\n \"path\": \"crates/event_store/src/model/current_visibility_v1.rs\",\n \"byte_length\": 5690,\n \"sha256\": \"57a4ccd377fc314193c34125ca2ea0a235637e888c622f60ed27bb5f55805c9d\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"food_projection_model\",\n \"path\": \"crates/event_store/src/model/food_availability_projection_v1.rs\",\n \"byte_length\": 17437,\n \"sha256\": \"28c259cdea06dd4b4a3b9103dc85a8049abee5a17f64771fd1083ae945dc009a\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"source_generation_rebuild_authority\",\n \"path\": \"crates/event_store/src/nip09/reconciliation_v1.rs\",\n \"byte_length\": 185239,\n \"sha256\": \"fb390d682a84e054d57ec6f845d32b4c28423cb238a246e2008f2e5dd529cdd5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"nip09_successor_result_vector_executor\",\n \"path\": \"crates/event_store/tests/support/nip09_reconciliation_v1_result_vector_v2.rs\",\n \"byte_length\": 17992,\n \"sha256\": \"24a004135d4f7f4324f4a61db8384601cbcb85b9376c52e5db8ed6a1463fd045\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"schema_migration_and_reopen_authority\",\n \"path\": \"crates/event_store/src/schema.rs\",\n \"byte_length\": 146146,\n \"sha256\": \"93b060e80d3edd73f86208e4bf698fa9d53eaf1eeb04526c9261fb8b5726fb0d\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"public_store_and_transaction_authority\",\n \"path\": \"crates/event_store/src/store.rs\",\n \"byte_length\": 395033,\n \"sha256\": \"9b990626ac85e70277a869bb31870f9e15e8208e1136a574f99a091632797d99\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"addressable_transition_feed_store\",\n \"path\": \"crates/event_store/src/store/addressable_transition_feed_v1.rs\",\n \"byte_length\": 40259,\n \"sha256\": \"ebb3b502c55ad218a1551f8ba2b9cc6dca4b34a1010e21002a3165ac8f66edee\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"current_visibility_store\",\n \"path\": \"crates/event_store/src/store/current_visibility_v1.rs\",\n \"byte_length\": 15785,\n \"sha256\": \"165086b7226189ab67600fb4b3c83abfba099e31c1018962d445437a2fe41ce5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"food_projection_store\",\n \"path\": \"crates/event_store/src/store/food_availability_projection_v1.rs\",\n \"byte_length\": 48959,\n \"sha256\": \"28197d8d308e14e91391d38d69a45e8286a1513cff4c3e65b40c915e872ad423\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_post_core_v1_extension\",\n \"path\": \"crates/event_store/src/store/post_core_extensions_v1.rs\",\n \"byte_length\": 6922,\n \"sha256\": \"fc18d92f6f4d8cb5b8428c4bd64bcf6d0c9b013e9fbe815830b5a4ab9fe07d45\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_post_core_v1_storage\",\n \"path\": \"crates/event_store/src/store/post_core_storage_v1.rs\",\n \"byte_length\": 16896,\n \"sha256\": \"8d0349a0d065708448f8e60387861a39099831142f87dd9a60ee3c6dafae031a\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"raw_ingest_capacity_authority\",\n \"path\": \"crates/event_store/src/store/protocol_reconciliation_v1.rs\",\n \"byte_length\": 30162,\n \"sha256\": \"2934caaf352475a9d50ac79eb9f3e5053075e6a66fb71cfe367a86c212d0159a\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_protocol_storage\",\n \"path\": \"crates/event_store/src/store/protocol_storage_v1.rs\",\n \"byte_length\": 10939,\n \"sha256\": \"53593f1c4ea0ff524b31a0e9c027803af051f5bd4fd5d70509508f580ee6dea6\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"source_maintenance_runtime\",\n \"path\": \"crates/event_store/src/source_maintenance_v1.rs\",\n \"byte_length\": 51849,\n \"sha256\": \"db43df5849c811d767a87bfa7884ce499400d0b169734e18242542a4415b3a51\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_food_result_vector_executor\",\n \"path\": \"crates/event_store/tests/food_availability_projection_v1_result_vector.rs\",\n \"byte_length\": 34062,\n \"sha256\": \"e3778e4f154845a088d32a83055b678efc1511bc7ae5bb82f4be61df2f6ef88e\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"artifact_transaction_authority\",\n \"path\": \"tools/xtask/src/contract/artifact_bundle.rs\",\n \"byte_length\": 38279,\n \"sha256\": \"f326ea57b56d40135f95b6b1e15961f66eed363337180a6d12a5ea903e1a9a29\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_successor_governance\",\n \"path\": \"tools/xtask/src/contract/food_availability_projection.rs\",\n \"byte_length\": 198719,\n \"sha256\": \"11e5628b20839fd88e28abef64d4e35a504d7bd42149691bcce67575cbc17a1c\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"transitive_predecessor_membership_governance\",\n \"path\": \"tools/xtask/src/contract/nip09_reconciliation.rs\",\n \"byte_length\": 838346,\n \"sha256\": \"506005717ab5d5785f5d6fcca54fdb1cddffa7eadebb176bf35cc0d6b3f67003\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"source_maintenance_governance\",\n \"path\": \"tools/xtask/src/contract/source_maintenance.rs\",\n \"byte_length\": 196407,\n \"sha256\": \"69dc1b2530ab01ef6059e338f2ef80163d409376b0315dbacb23bab34b641074\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"contract_command_authority\",\n \"path\": \"tools/xtask/src/contract.rs\",\n \"byte_length\": 506342,\n \"sha256\": \"a506f13c9cf95fa60249f7c2aa8947ad5c9c821f82962c549dd324fd69917502\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"dto_root_generation_authority\",\n \"path\": \"tools/xtask/src/dto_roots.rs\",\n \"byte_length\": 35940,\n \"sha256\": \"a899a5695d7533c151d03477c4bd697a6e55c47a4980549724ac42046af694f5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"xtask_dispatch_and_release_preflight\",\n \"path\": \"tools/xtask/src/main.rs\",\n \"byte_length\": 16426,\n \"sha256\": \"abc24896c6c740c10811a3e003ec4be8ebdb376a7b6b01445bfa7a5889f094a7\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n }\n ],\n \"public_api\": {\n \"inherited_predecessor_symbols\": [\n \"RADROOTS_ADDRESSABLE_TRANSITION_CURSOR_JSON_MAX_BYTES_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_D_TAG_MAX_BYTES_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_FEED_VERSION_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_PAGE_LIMIT_MAX_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_PAGE_RAW_JSON_MAX_BYTES_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_PAGE_SCAN_MAX_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_SCOPE_KIND_MAX_V1\",\n \"RADROOTS_FOOD_AVAILABILITY_PROJECTION_APPLY_PAGE_LIMIT_V1\",\n \"RADROOTS_FOOD_AVAILABILITY_PROJECTION_VERSION_V1\",\n \"RADROOTS_FOOD_AVAILABILITY_SEARCH_QUERY_MAX_BYTES_V1\",\n \"RADROOTS_FOOD_AVAILABILITY_SEARCH_QUERY_MAX_TERMS_V1\",\n \"RadrootsAddressableTransitionCauseV1\",\n \"RadrootsAddressableTransitionCoordinateV1\",\n \"RadrootsAddressableTransitionCursorV1\",\n \"RadrootsAddressableTransitionEventReferenceV1\",\n \"RadrootsAddressableTransitionOriginV1\",\n \"RadrootsAddressableTransitionPageV1\",\n \"RadrootsAddressableTransitionRawHeadDecisionV1\",\n \"RadrootsAddressableTransitionScopeFingerprintV1\",\n \"RadrootsAddressableTransitionScopeV1\",\n \"RadrootsAddressableTransitionV1\",\n \"RadrootsAddressableTransitionVisibilityV1\",\n \"RadrootsCurrentEventVisibilityV1\",\n \"RadrootsCurrentVisibilityDecisionV1\",\n \"RadrootsFoodAvailabilitySearchQueryV1\",\n \"RadrootsFoodAvailabilityStatusFilterV1\",\n \"RadrootsNip09SuppressionEvidenceV1\",\n \"RadrootsNip09SuppressionOutcome\",\n \"RadrootsNip09SuppressionReason\",\n \"RadrootsStoreProducedCanonicalEventV1\",\n \"RadrootsStoredFoodAvailabilityImageV1\",\n \"RadrootsStoredFoodAvailabilityV1\"\n ],\n \"added_symbols\": [\n \"RADROOTS_EVENT_STORE_RAW_EVENT_COUNT_LIMIT_V1\",\n \"RADROOTS_EVENT_STORE_RAW_EVENT_TEXT_BYTES_LIMIT_V1\",\n \"RADROOTS_EVENT_STORE_RAW_TAG_COUNT_LIMIT_V1\",\n \"RADROOTS_EVENT_STORE_RAW_TAG_TEXT_BYTES_LIMIT_V1\",\n \"RADROOTS_EVENT_STORE_RETAINED_SOURCE_GENERATION_LIMIT_V1\",\n \"RadrootsEventStoreSourceCapacityResourceV1\",\n \"RadrootsEventStoreSourceCapacityV1\"\n ],\n \"methods\": [\n \"RadrootsEventStore::source_capacity_v1\",\n \"RadrootsEventStoreSourceCapacityResourceV1::as_str\",\n \"RadrootsEventStoreSourceCapacityV1::source_generation\",\n \"RadrootsEventStoreSourceCapacityV1::raw_event_count\",\n \"RadrootsEventStoreSourceCapacityV1::raw_tag_count\",\n \"RadrootsEventStoreSourceCapacityV1::raw_event_text_bytes\",\n \"RadrootsEventStoreSourceCapacityV1::raw_tag_text_bytes\",\n \"RadrootsEventStoreSourceCapacityV1::raw_high_water_seq\",\n \"RadrootsEventStoreSourceCapacityV1::retained_generation_count\",\n \"RadrootsEventStoreSourceCapacityV1::retained_generation_limit\"\n ],\n \"error_variants\": [\n \"SourceCapacityExceeded\",\n \"SourceGenerationHistoryLimitReached\",\n \"PersistedEphemeralRawEvent\",\n \"SourceCapacityStateDrift\",\n \"SqliteMainDatabaseEncodingNotUtf8\",\n \"RollbackWouldDiscardSourceGenerationHistory\"\n ],\n \"removed_symbols\": [\n \"RadrootsEventStoreReconciliationResource\",\n \"RadrootsEventStoreError::ReconciliationCapacityExceeded\"\n ],\n \"breaking_replacements\": [\n {\n \"removed\": \"RadrootsEventStoreReconciliationResource\",\n \"replacement\": \"RadrootsEventStoreSourceCapacityResourceV1\"\n },\n {\n \"removed\": \"RadrootsEventStoreError::ReconciliationCapacityExceeded\",\n \"replacement\": \"RadrootsEventStoreError::SourceCapacityExceeded\"\n }\n ]\n },\n \"result_vector\": {\n \"canonical_path\": \"contracts/conformance/vectors/event_store/source_maintenance.v1.json\",\n \"mirror_path\": \"crates/event_store/tests/fixtures/source_maintenance.v1.json\",\n \"byte_length\": 16253,\n \"sha256\": \"997aba2604a2b9d199fb87dc9d07942ca50d91863aeadcf3eeacf16d191dd71f\",\n \"hash_algorithm\": \"sha256_bytes_v1\",\n \"executor_id\": \"radroots_event_store.source_maintenance_v1.result_vector_executor.v1\",\n \"executor_path\": \"crates/event_store/tests/source_maintenance_v1_result_vector.rs\",\n \"executor_test\": \"source_maintenance_v1_result_vector\",\n \"executor_byte_length\": 23510,\n \"executor_sha256\": \"a7487afdfe19fc5fc794811d0f0e6035203e1aabcf0a33a1d398f6b3555d38f3\",\n \"executor_hash_algorithm\": \"sha256_bytes_v1\"\n }\n}\n"; +pub(crate) const SOURCE_MAINTENANCE_MANIFEST_JSON: &str = "{\n \"schema_version\": 1,\n \"contract_id\": \"radroots_event_store.source_maintenance_v1\",\n \"hook_id\": \"source_maintenance_v1\",\n \"manifest_schema\": {\n \"path\": \"crates/event_store/contracts/source_maintenance_v1.manifest.schema.json\",\n \"byte_length\": 12315,\n \"sha256\": \"96ea98a5abf3348b61565954cd34f2c622411d8dd34205ef04134bbe0e3d3f2b\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n \"predecessor\": {\n \"hook_id\": \"food_availability_projection_v1\",\n \"manifest\": {\n \"path\": \"crates/event_store/contracts/food_availability_projection_v1.manifest.json\",\n \"byte_length\": 17455,\n \"sha256\": \"02dfe1b450fbdac16e718888215b4dd5c85d8975440fa21e8f439fb24c2b2990\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n }\n },\n \"migration\": {\n \"version\": 4,\n \"name\": \"source_maintenance\",\n \"up\": {\n \"path\": \"crates/event_store/migrations/0004_source_maintenance.up.sql\",\n \"byte_length\": 19841,\n \"sha256\": \"ab2724188f8d08c897eebea2533a635e7c74282a25e84e4c0c37e78b08837a43\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n \"down\": {\n \"path\": \"crates/event_store/migrations/0004_source_maintenance.down.sql\",\n \"byte_length\": 5172,\n \"sha256\": \"fe44fd53c51545c08ea479b385e6781079dab70fc63da2a3c205d727a00ce860\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n \"schema_sha256\": \"074f85b663444ac150239ecd8441ea4a96ad83a798a55e22d2e5e2f7ee943a8c\",\n \"catalog\": {\n \"objects\": [\n \"radroots_event_store_source_capacity_delete_guard\",\n \"radroots_event_store_source_capacity_insert_guard\",\n \"radroots_event_store_source_capacity_marker_close_guard\",\n \"radroots_event_store_source_capacity_update_guard\",\n \"radroots_event_store_source_capacity_v1\",\n \"radroots_event_store_source_generation_capacity_advance\",\n \"radroots_event_store_source_generation_capacity_guard\"\n ],\n \"replaced_objects\": [\n \"radroots_event_store_food_availability_image_delete_guard\",\n \"radroots_event_store_food_availability_projection_delete_guard\",\n \"radroots_event_store_source_rebuild_marker_insert_guard\"\n ],\n \"tables\": [\n \"radroots_event_store_source_capacity_v1\"\n ],\n \"fts5_tables\": []\n }\n },\n \"source_maintenance\": {\n \"version\": 1,\n \"event_contract_registry_version\": 7,\n \"capacity_authority_id\": \"radroots_event_store_source_capacity_v1\",\n \"accounting\": {\n \"algorithm\": \"sqlite_cast_blob_octet_sum_v1\",\n \"raw_event_columns\": [\n \"event_id\",\n \"pubkey\",\n \"tags_json\",\n \"content\",\n \"sig\",\n \"raw_json\"\n ],\n \"raw_tag_columns\": [\n \"event_id\",\n \"tag_name\",\n \"tag_value\",\n \"tag_json\"\n ],\n \"nullable_raw_tag_columns\": [\n \"tag_value\"\n ]\n },\n \"limits\": {\n \"raw_events\": 25000,\n \"raw_tags\": 250000,\n \"raw_event_text_bytes\": 67108864,\n \"raw_tag_text_bytes\": 33554432,\n \"retained_source_generations\": 8\n },\n \"reopen_validation\": {\n \"mode\": \"bounded_full_raw_recount_v1\",\n \"raw_event_rejection_scan_bound\": 25001,\n \"raw_tag_rejection_scan_bound\": 250001,\n \"generation_history_validation\": \"bounded_count_plus_active_ordinal_v1\",\n \"retained_generation_rejection_scan_bound\": 9\n },\n \"rebuild_seal\": {\n \"nip09_hook_id\": \"nip09_reconciliation_v1\",\n \"nip09_manifest_sha256\": \"74af832420ffbaa9805e89df3c0b34f126a443e1598f757e3372f407f9003b77\",\n \"food_hook_id\": \"food_availability_projection_v1\",\n \"food_manifest_sha256\": \"02dfe1b450fbdac16e718888215b4dd5c85d8975440fa21e8f439fb24c2b2990\",\n \"food_scope_fingerprint_sha256\": \"8b63c5ddc48a2cc7db69295238b96d5f814dba50427c80b4d0079f061e6d3de0\",\n \"active_generation_authority\": \"radroots_event_store_source_state\",\n \"marker_close_authority\": \"radroots_event_store_source_capacity_marker_close_guard\"\n }\n },\n \"entry_points\": [\n {\n \"role\": \"migration_registry\",\n \"rust_path\": \"radroots_event_store::migrations::EVENT_STORE_MIGRATIONS[3]\"\n },\n {\n \"role\": \"migration_apply_hook\",\n \"rust_path\": \"radroots_event_store::schema::apply_migration_hook\"\n },\n {\n \"role\": \"migration_validation_hook\",\n \"rust_path\": \"radroots_event_store::schema::validate_migration_hook_state\"\n },\n {\n \"role\": \"capacity_query\",\n \"rust_path\": \"radroots_event_store::RadrootsEventStore::source_capacity_v1\"\n },\n {\n \"role\": \"raw_append_preflight\",\n \"rust_path\": \"radroots_event_store::source_maintenance_v1::preflight_unique_raw_source_append_v1\"\n },\n {\n \"role\": \"raw_append_advance\",\n \"rust_path\": \"radroots_event_store::source_maintenance_v1::advance_source_capacity_after_insert_v1\"\n },\n {\n \"role\": \"generation_append_preflight\",\n \"rust_path\": \"radroots_event_store::source_maintenance_v1::preflight_source_generation_append_v1\"\n },\n {\n \"role\": \"generation_rebuild_bind\",\n \"rust_path\": \"radroots_event_store::source_maintenance_v1::bind_source_capacity_to_generation_v1\"\n },\n {\n \"role\": \"sqlite_encoding_preflight\",\n \"rust_path\": \"radroots_event_store::store::validate_main_database_encoding\"\n },\n {\n \"role\": \"source_generation_history_rollback_guard\",\n \"rust_path\": \"radroots_event_store::schema::validate_rollback_preserves_source_generation_history\"\n },\n {\n \"role\": \"result_vector_executor\",\n \"rust_path\": \"source_maintenance_v1_result_vector\"\n }\n ],\n \"source_files\": [\n {\n \"role\": \"workspace_dependency_authority\",\n \"path\": \"Cargo.toml\",\n \"byte_length\": 12411,\n \"sha256\": \"cad96f080b0cc9ac7ffda703c8807540c9cf89f47a2299b141e6e7949714bf9f\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_currency_value_authority\",\n \"path\": \"crates/core/src/currency.rs\",\n \"byte_length\": 4142,\n \"sha256\": \"42e6da2d8d2fdd6955dc2d83e98dd00266e02bc910b69923b117662c05089d14\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_decimal_value_authority\",\n \"path\": \"crates/core/src/decimal.rs\",\n \"byte_length\": 7839,\n \"sha256\": \"4b1d681a92d7a9e074bee7e1f20eb1499bb05bfc6528a6c9ba69fa7d00416550\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_money_value_authority\",\n \"path\": \"crates/core/src/money.rs\",\n \"byte_length\": 8025,\n \"sha256\": \"3f30bc21e21951a62fdc5d4033736ed42a883df590e8403940775bd2edfeebc5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_percent_value_authority\",\n \"path\": \"crates/core/src/percent.rs\",\n \"byte_length\": 2652,\n \"sha256\": \"42ceab109881329f3539d06a0ee0381ab4359985fe185a18d58a9c9558c5eb7f\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_quantity_value_authority\",\n \"path\": \"crates/core/src/quantity.rs\",\n \"byte_length\": 6785,\n \"sha256\": \"d14e619da3829cdaf3ca7385fb892d330c286c1e21455c135c37518cbb588b5f\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_quantity_price_value_authority\",\n \"path\": \"crates/core/src/quantity_price.rs\",\n \"byte_length\": 7061,\n \"sha256\": \"d60f70377099470ed283f45868a5119d7bb46143cb250b5082a4c038ba7f6cdc\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"core_unit_value_authority\",\n \"path\": \"crates/core/src/unit.rs\",\n \"byte_length\": 10023,\n \"sha256\": \"550e9582b6a5290aac3f637b83853b21fefcbab92c432d067c83448f4b2fe3e9\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_public_surface\",\n \"path\": \"crates/blossom/src/lib.rs\",\n \"byte_length\": 510,\n \"sha256\": \"a4dfcbd193457c50c1b0fbfc91bb547981ecd3a6e23cfc6f1030edfb511dc58c\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_authorization_authority\",\n \"path\": \"crates/blossom/src/authorization.rs\",\n \"byte_length\": 39360,\n \"sha256\": \"461947b30516315a342b3b5697599f701d27050888f29f67f5d7a7ad4afa4c28\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_descriptor_authority\",\n \"path\": \"crates/blossom/src/descriptor.rs\",\n \"byte_length\": 13702,\n \"sha256\": \"b2a4ffa760256e1316f70e012d200e2b5f4afd8ede771b85a5147f96b247f599\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_error_authority\",\n \"path\": \"crates/blossom/src/error.rs\",\n \"byte_length\": 17229,\n \"sha256\": \"02af55beacf437040be17d1fc3271d6e2a62915f656ec2dbe06247deef83f95a\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_hash_authority\",\n \"path\": \"crates/blossom/src/hash.rs\",\n \"byte_length\": 11006,\n \"sha256\": \"45eca0d81ac0f46c305a32f81aafcdd90b14679d0614f72862289a6e5d4cb08f\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_media_type_authority\",\n \"path\": \"crates/blossom/src/media_type.rs\",\n \"byte_length\": 2368,\n \"sha256\": \"69db5c0f9fcdd7dbe1f22daa499f65603ae4ce198083dab2c73a36813fa18a46\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"blossom_url_authority\",\n \"path\": \"crates/blossom/src/url.rs\",\n \"byte_length\": 14580,\n \"sha256\": \"342c995fcf620e5fb32461a7d8276f5668ba2662890bd32d12780cc9121c6451\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_public_surface\",\n \"path\": \"crates/event/src/lib.rs\",\n \"byte_length\": 1993,\n \"sha256\": \"d7a869dead70892257c0a7a287ddc086c339242f9d8d22c384878315226fe050\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_contract_facade\",\n \"path\": \"crates/event/src/contract.rs\",\n \"byte_length\": 208,\n \"sha256\": \"27466bf36461071931f391c60646a13f7781d19584583166cc54c0eece76d010\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_contract_registry_v7_authority\",\n \"path\": \"crates/event/src/contract/registry_v7.rs\",\n \"byte_length\": 157252,\n \"sha256\": \"4ae8af380fd99c4b9b011981770bb352e104b7bae1784f45b1979f972a97df35\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_envelope_authority\",\n \"path\": \"crates/event/src/envelope.rs\",\n \"byte_length\": 31248,\n \"sha256\": \"3105d9cc32779b8c75bfc272f83981cc0036884c78917168389850af7aecc4cd\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_verification_typestate_authority\",\n \"path\": \"crates/event/src/verification.rs\",\n \"byte_length\": 9645,\n \"sha256\": \"8512710b2730b87c4630f140707d144f3f196685eaa26715f0ee7c99d0d3c6d2\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_admission_typestate_authority\",\n \"path\": \"crates/event/src/admission.rs\",\n \"byte_length\": 5975,\n \"sha256\": \"aaa5fc73146e521cdc0598c91bafa5103cfeef30dc4e66b6d71da3b76d9f8dfa\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_head_facade\",\n \"path\": \"crates/event/src/event_head.rs\",\n \"byte_length\": 97,\n \"sha256\": \"f761ff3e74c4f5e1e28381db00ce698c633ff048669b22984d14a587482e8e83\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_head_v1_authority\",\n \"path\": \"crates/event/src/event_head/v1.rs\",\n \"byte_length\": 7566,\n \"sha256\": \"6ef7537a1188086e4f414b6c5f398a305c2eca5edd0ee188b4f890f07f3322ff\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_ids_authority\",\n \"path\": \"crates/event/src/id.rs\",\n \"byte_length\": 51758,\n \"sha256\": \"8b9a2da028e9621c660dde3c40a34713e7e0e8b3fe66b64aa18de6a6e666db45\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_trade_authority\",\n \"path\": \"crates/event/src/trade.rs\",\n \"byte_length\": 68665,\n \"sha256\": \"5e1aa8bd20bc13a08e4ebc7e6306365cb74f55e1cec62af135a36eb41146dd45\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_kinds_authority\",\n \"path\": \"crates/event/src/kinds.rs\",\n \"byte_length\": 34961,\n \"sha256\": \"8b3ce6193cab1f7e1587d0c1b2880a81b0aa43c77d89671b602772db37edcebf\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_tags_authority\",\n \"path\": \"crates/event/src/tags.rs\",\n \"byte_length\": 4530,\n \"sha256\": \"cb8f12a639fc72d9238e32495d9e67e928e6627fb8c94ec0a58c5d95e7373cd6\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_draft_authority\",\n \"path\": \"crates/event/src/draft.rs\",\n \"byte_length\": 53436,\n \"sha256\": \"1eeefbcb9467eb92a9640b3dbd36faa8d98afd20e26d8a3603646a5131be3196\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_calendar_authority\",\n \"path\": \"crates/event/src/calendar.rs\",\n \"byte_length\": 103877,\n \"sha256\": \"1e0bb92b32198cea2f39df57c365d4a8c43dea301f452f1309df4078401df7fc\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_classified_listing_authority\",\n \"path\": \"crates/event/src/classified_listing.rs\",\n \"byte_length\": 8236,\n \"sha256\": \"ee022b2aaffd1642c2c1e792c79e8fce353b9edd4d6e49afdebeb74af771187e\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_profile_authority\",\n \"path\": \"crates/event/src/profile.rs\",\n \"byte_length\": 18933,\n \"sha256\": \"8f75af27179d62e09da9c4d578e1bbf9e4cda71167888f8ae48ea3d8a9e8fa38\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_post_authority\",\n \"path\": \"crates/event/src/post.rs\",\n \"byte_length\": 23135,\n \"sha256\": \"8671cb3c4da0e2ea68f95ad99688dba209c6206296300394a7d6e771f7bfc3ed\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_comment_authority\",\n \"path\": \"crates/event/src/comment.rs\",\n \"byte_length\": 36453,\n \"sha256\": \"159eb5487e67e1a834072333a7f08b38ac15756c46eaeafecaa1574aade0a824\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_food_availability_authority\",\n \"path\": \"crates/event/src/food_availability.rs\",\n \"byte_length\": 45430,\n \"sha256\": \"389dda590888278b0bd95b4e19a597f47e0f573a24e0ac3cb92c63098191a290\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_deletion_authority\",\n \"path\": \"crates/event/src/deletion.rs\",\n \"byte_length\": 31181,\n \"sha256\": \"99cf3d8e61f107602df345c6e2ac60223b9d0389537b231dd1a30a2ed0e64990\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_relay_hint_authority\",\n \"path\": \"crates/event/src/relay_hint.rs\",\n \"byte_length\": 14016,\n \"sha256\": \"095ce5284796eac71b3aa6630718d398a67ff3836a92d80444fc45fb023b4931\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_media_authority\",\n \"path\": \"crates/event/src/media.rs\",\n \"byte_length\": 3574,\n \"sha256\": \"2e91f3b5624dfab990f18abd4dd6194f1205442c798381af6b648aee88de53ee\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_social_authority\",\n \"path\": \"crates/event/src/social.rs\",\n \"byte_length\": 6284,\n \"sha256\": \"9db55b9eaa8b712430ecd7b4430e3ed50f3224a4a4c2537f9741e3026f4a1857\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_wire_facade\",\n \"path\": \"crates/event/src/wire.rs\",\n \"byte_length\": 68,\n \"sha256\": \"cb52f6006f7ecd862707d6b048f9fc407e0cd5ebcd3091b3c54e195ffa5cba64\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_wire_v1_authority\",\n \"path\": \"crates/event/src/wire/v1.rs\",\n \"byte_length\": 22132,\n \"sha256\": \"8b18760d655c01c3cbb1d1818b486c6aeae324d262c864fc1ed1297d2ecf1196\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_verification_facade\",\n \"path\": \"crates/event_codec/src/verification.rs\",\n \"byte_length\": 253,\n \"sha256\": \"b49a32df605035c87f295c0a151140d43d2e588c5e11b05183e5fc92993dae0e\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_verification_v1_authority\",\n \"path\": \"crates/event_codec/src/verification/v1.rs\",\n \"byte_length\": 8649,\n \"sha256\": \"1ef3d12f90eb7d35f4cafe36c2cc0bbd33731df278b58c9062fb13934e2a98c8\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_registry_v7_admission_authority\",\n \"path\": \"crates/event_codec/src/admission/registry_v7.rs\",\n \"byte_length\": 5360,\n \"sha256\": \"81b26be497e3314564e88b9e6f21aaaf4dee44d6f37b5e127de561553a660c48\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_profile_inbound_facade\",\n \"path\": \"crates/event_codec/src/profile/inbound.rs\",\n \"byte_length\": 86,\n \"sha256\": \"9994cbca9dcc7450ad133b6b927e7c06bee08ef813652452cc1e56a284c1be10\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_profile_registry_v7_authority\",\n \"path\": \"crates/event_codec/src/profile/inbound/registry_v7.rs\",\n \"byte_length\": 10394,\n \"sha256\": \"c37c225ea8153beb098a39c4a56203aa03382af12646f40cd3f8628663700702\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_post_inbound_facade\",\n \"path\": \"crates/event_codec/src/post/inbound.rs\",\n \"byte_length\": 86,\n \"sha256\": \"9994cbca9dcc7450ad133b6b927e7c06bee08ef813652452cc1e56a284c1be10\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_post_registry_v7_authority\",\n \"path\": \"crates/event_codec/src/post/inbound/registry_v7.rs\",\n \"byte_length\": 16025,\n \"sha256\": \"551380f1b188fbd6ac4cba988426218863ec557eb6022153da89ace2aa40d2c7\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_reply_inbound_facade\",\n \"path\": \"crates/event_codec/src/reply/inbound.rs\",\n \"byte_length\": 86,\n \"sha256\": \"9994cbca9dcc7450ad133b6b927e7c06bee08ef813652452cc1e56a284c1be10\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_reply_registry_v7_authority\",\n \"path\": \"crates/event_codec/src/reply/inbound/registry_v7.rs\",\n \"byte_length\": 26825,\n \"sha256\": \"3abb33e8d20097e41d2c81f10d023c3293390718915eb5087c663676d322bfce\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_comment_inbound_facade\",\n \"path\": \"crates/event_codec/src/comment/inbound.rs\",\n \"byte_length\": 86,\n \"sha256\": \"9994cbca9dcc7450ad133b6b927e7c06bee08ef813652452cc1e56a284c1be10\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_comment_registry_v7_authority\",\n \"path\": \"crates/event_codec/src/comment/inbound/registry_v7.rs\",\n \"byte_length\": 53802,\n \"sha256\": \"32413b80b7472cfb024984ae0e0ea67c7a42ebc98b2257d6c9d16a87f2d84ba0\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_deletion_facade\",\n \"path\": \"crates/event_codec/src/deletion/mod.rs\",\n \"byte_length\": 115,\n \"sha256\": \"17d56f82ddb0a86bc97abbcf3e037fe460ea31fff2548f527be4bf004dac3a95\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_deletion_reconciliation_v1_authority\",\n \"path\": \"crates/event_codec/src/deletion/reconciliation_v1.rs\",\n \"byte_length\": 38345,\n \"sha256\": \"dc6c55e5af2cfab0149dbb763cafa603566772fdae378988a583162c95438496\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_error_authority\",\n \"path\": \"crates/event_codec/src/error.rs\",\n \"byte_length\": 3698,\n \"sha256\": \"b20b70056ea2b48a9e3a4f7697a76e87d5f3c445641bfcc7b61d72605b146ce5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_food_admission_authority\",\n \"path\": \"crates/event_codec/src/food_availability/admission.rs\",\n \"byte_length\": 5815,\n \"sha256\": \"96aea4bdd6938d26f03fa9bcb94e3ce8608bf674895961f8bf237554796debba\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_food_inbound_facade\",\n \"path\": \"crates/event_codec/src/food_availability/inbound.rs\",\n \"byte_length\": 86,\n \"sha256\": \"9994cbca9dcc7450ad133b6b927e7c06bee08ef813652452cc1e56a284c1be10\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_food_registry_v7_authority\",\n \"path\": \"crates/event_codec/src/food_availability/inbound/registry_v7.rs\",\n \"byte_length\": 26785,\n \"sha256\": \"d06807c62333d0b1b8496b51390210b0738ee92b1748bc7e31bd4b095fb62ed2\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_codec_job_traits_authority\",\n \"path\": \"crates/event_codec/src/job/traits.rs\",\n \"byte_length\": 5101,\n \"sha256\": \"bc198764f2825b4b1441781493e13fc7088e7bdd04f70690480f387604b0bd47\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_store_dependency_authority\",\n \"path\": \"crates/event_store/Cargo.toml\",\n \"byte_length\": 1567,\n \"sha256\": \"46e03d3c758e1116638021a0499dfa588b4266498e0d50cfa758f9bef9bcfeb3\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_store_error_and_limits\",\n \"path\": \"crates/event_store/src/error.rs\",\n \"byte_length\": 19516,\n \"sha256\": \"384f81d13dd5a837dd336b1f990fd79718f05ceb9c9272d0e8cd14c9618e4c8b\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"generated_descriptor_registration\",\n \"path\": \"crates/event_store/src/generated.rs\",\n \"byte_length\": 144,\n \"sha256\": \"6b0a8d6f249bd4fc3f878d37cb5e418680f0f1be2d9eec2518dedf03efc47121\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"public_surface\",\n \"path\": \"crates/event_store/src/lib.rs\",\n \"byte_length\": 3844,\n \"sha256\": \"3cd9653bcb752fb3c4442d4904b98a0a6208011a9a238125b7b7073d7f4e312b\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"migration_registry\",\n \"path\": \"crates/event_store/src/migrations.rs\",\n \"byte_length\": 73585,\n \"sha256\": \"a47477d04759ec6e71d14d3d05459864eae78fce0e3c2481a1b03147f04637f7\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_model_public_surface\",\n \"path\": \"crates/event_store/src/model.rs\",\n \"byte_length\": 33624,\n \"sha256\": \"b155993cf03f19f392068188e14adad5b5b139996434d1076a86428e1cce4255\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_store_reconciliation_v1_model\",\n \"path\": \"crates/event_store/src/model/reconciliation_v1.rs\",\n \"byte_length\": 11148,\n \"sha256\": \"37f9edd8e1b5ae3f696bc911e8a7eda0a6eac4e05d2d9e6799f041d0abf73b50\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"event_store_reconciliation_v1_ingest_model\",\n \"path\": \"crates/event_store/src/model/ingest_reconciliation_v1.rs\",\n \"byte_length\": 1626,\n \"sha256\": \"47bf13b3fc0f8a913a660f7d655413de0f6b90568bc4acc510aa6bd741bab47b\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"addressable_transition_feed_model\",\n \"path\": \"crates/event_store/src/model/addressable_transition_feed_v1.rs\",\n \"byte_length\": 22277,\n \"sha256\": \"3fbccc2ab44ceb66ad459ebb56c87aa250732b28248716128e91ca42d7c7656d\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"current_visibility_model\",\n \"path\": \"crates/event_store/src/model/current_visibility_v1.rs\",\n \"byte_length\": 5690,\n \"sha256\": \"57a4ccd377fc314193c34125ca2ea0a235637e888c622f60ed27bb5f55805c9d\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"food_projection_model\",\n \"path\": \"crates/event_store/src/model/food_availability_projection_v1.rs\",\n \"byte_length\": 17437,\n \"sha256\": \"28c259cdea06dd4b4a3b9103dc85a8049abee5a17f64771fd1083ae945dc009a\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"source_generation_rebuild_authority\",\n \"path\": \"crates/event_store/src/nip09/reconciliation_v1.rs\",\n \"byte_length\": 185239,\n \"sha256\": \"fb390d682a84e054d57ec6f845d32b4c28423cb238a246e2008f2e5dd529cdd5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"nip09_successor_result_vector_executor\",\n \"path\": \"crates/event_store/tests/support/nip09_reconciliation_v1_result_vector_v2.rs\",\n \"byte_length\": 17992,\n \"sha256\": \"24a004135d4f7f4324f4a61db8384601cbcb85b9376c52e5db8ed6a1463fd045\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"schema_migration_and_reopen_authority\",\n \"path\": \"crates/event_store/src/schema.rs\",\n \"byte_length\": 146146,\n \"sha256\": \"93b060e80d3edd73f86208e4bf698fa9d53eaf1eeb04526c9261fb8b5726fb0d\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"public_store_and_transaction_authority\",\n \"path\": \"crates/event_store/src/store.rs\",\n \"byte_length\": 395033,\n \"sha256\": \"9b990626ac85e70277a869bb31870f9e15e8208e1136a574f99a091632797d99\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"addressable_transition_feed_store\",\n \"path\": \"crates/event_store/src/store/addressable_transition_feed_v1.rs\",\n \"byte_length\": 40259,\n \"sha256\": \"ebb3b502c55ad218a1551f8ba2b9cc6dca4b34a1010e21002a3165ac8f66edee\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"current_visibility_store\",\n \"path\": \"crates/event_store/src/store/current_visibility_v1.rs\",\n \"byte_length\": 15785,\n \"sha256\": \"165086b7226189ab67600fb4b3c83abfba099e31c1018962d445437a2fe41ce5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"food_projection_store\",\n \"path\": \"crates/event_store/src/store/food_availability_projection_v1.rs\",\n \"byte_length\": 48959,\n \"sha256\": \"28197d8d308e14e91391d38d69a45e8286a1513cff4c3e65b40c915e872ad423\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_post_core_v1_extension\",\n \"path\": \"crates/event_store/src/store/post_core_extensions_v1.rs\",\n \"byte_length\": 6922,\n \"sha256\": \"fc18d92f6f4d8cb5b8428c4bd64bcf6d0c9b013e9fbe815830b5a4ab9fe07d45\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_post_core_v1_storage\",\n \"path\": \"crates/event_store/src/store/post_core_storage_v1.rs\",\n \"byte_length\": 16896,\n \"sha256\": \"8d0349a0d065708448f8e60387861a39099831142f87dd9a60ee3c6dafae031a\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"raw_ingest_capacity_authority\",\n \"path\": \"crates/event_store/src/store/protocol_reconciliation_v1.rs\",\n \"byte_length\": 30162,\n \"sha256\": \"2934caaf352475a9d50ac79eb9f3e5053075e6a66fb71cfe367a86c212d0159a\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_protocol_storage\",\n \"path\": \"crates/event_store/src/store/protocol_storage_v1.rs\",\n \"byte_length\": 10939,\n \"sha256\": \"53593f1c4ea0ff524b31a0e9c027803af051f5bd4fd5d70509508f580ee6dea6\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"source_maintenance_runtime\",\n \"path\": \"crates/event_store/src/source_maintenance_v1.rs\",\n \"byte_length\": 51849,\n \"sha256\": \"db43df5849c811d767a87bfa7884ce499400d0b169734e18242542a4415b3a51\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_food_result_vector_executor\",\n \"path\": \"crates/event_store/tests/food_availability_projection_v1_result_vector.rs\",\n \"byte_length\": 34062,\n \"sha256\": \"e3778e4f154845a088d32a83055b678efc1511bc7ae5bb82f4be61df2f6ef88e\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"artifact_transaction_authority\",\n \"path\": \"tools/xtask/src/contract/artifact_bundle.rs\",\n \"byte_length\": 38279,\n \"sha256\": \"f326ea57b56d40135f95b6b1e15961f66eed363337180a6d12a5ea903e1a9a29\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"predecessor_successor_governance\",\n \"path\": \"tools/xtask/src/contract/food_availability_projection.rs\",\n \"byte_length\": 198719,\n \"sha256\": \"11e5628b20839fd88e28abef64d4e35a504d7bd42149691bcce67575cbc17a1c\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"transitive_predecessor_membership_governance\",\n \"path\": \"tools/xtask/src/contract/nip09_reconciliation.rs\",\n \"byte_length\": 838346,\n \"sha256\": \"506005717ab5d5785f5d6fcca54fdb1cddffa7eadebb176bf35cc0d6b3f67003\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"source_maintenance_governance\",\n \"path\": \"tools/xtask/src/contract/source_maintenance.rs\",\n \"byte_length\": 196407,\n \"sha256\": \"69dc1b2530ab01ef6059e338f2ef80163d409376b0315dbacb23bab34b641074\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"contract_command_authority\",\n \"path\": \"tools/xtask/src/contract.rs\",\n \"byte_length\": 506342,\n \"sha256\": \"a506f13c9cf95fa60249f7c2aa8947ad5c9c821f82962c549dd324fd69917502\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"dto_root_generation_authority\",\n \"path\": \"tools/xtask/src/dto_roots.rs\",\n \"byte_length\": 35940,\n \"sha256\": \"a899a5695d7533c151d03477c4bd697a6e55c47a4980549724ac42046af694f5\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n },\n {\n \"role\": \"xtask_dispatch_and_release_preflight\",\n \"path\": \"tools/xtask/src/main.rs\",\n \"byte_length\": 16426,\n \"sha256\": \"abc24896c6c740c10811a3e003ec4be8ebdb376a7b6b01445bfa7a5889f094a7\",\n \"hash_algorithm\": \"sha256_bytes_v1\"\n }\n ],\n \"public_api\": {\n \"inherited_predecessor_symbols\": [\n \"RADROOTS_ADDRESSABLE_TRANSITION_CURSOR_JSON_MAX_BYTES_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_D_TAG_MAX_BYTES_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_FEED_VERSION_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_PAGE_LIMIT_MAX_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_PAGE_RAW_JSON_MAX_BYTES_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_PAGE_SCAN_MAX_V1\",\n \"RADROOTS_ADDRESSABLE_TRANSITION_SCOPE_KIND_MAX_V1\",\n \"RADROOTS_FOOD_AVAILABILITY_PROJECTION_APPLY_PAGE_LIMIT_V1\",\n \"RADROOTS_FOOD_AVAILABILITY_PROJECTION_VERSION_V1\",\n \"RADROOTS_FOOD_AVAILABILITY_SEARCH_QUERY_MAX_BYTES_V1\",\n \"RADROOTS_FOOD_AVAILABILITY_SEARCH_QUERY_MAX_TERMS_V1\",\n \"RadrootsAddressableTransitionCauseV1\",\n \"RadrootsAddressableTransitionCoordinateV1\",\n \"RadrootsAddressableTransitionCursorV1\",\n \"RadrootsAddressableTransitionEventReferenceV1\",\n \"RadrootsAddressableTransitionOriginV1\",\n \"RadrootsAddressableTransitionPageV1\",\n \"RadrootsAddressableTransitionRawHeadDecisionV1\",\n \"RadrootsAddressableTransitionScopeFingerprintV1\",\n \"RadrootsAddressableTransitionScopeV1\",\n \"RadrootsAddressableTransitionV1\",\n \"RadrootsAddressableTransitionVisibilityV1\",\n \"RadrootsCurrentEventVisibilityV1\",\n \"RadrootsCurrentVisibilityDecisionV1\",\n \"RadrootsFoodAvailabilitySearchQueryV1\",\n \"RadrootsFoodAvailabilityStatusFilterV1\",\n \"RadrootsNip09SuppressionEvidenceV1\",\n \"RadrootsNip09SuppressionOutcome\",\n \"RadrootsNip09SuppressionReason\",\n \"RadrootsStoreProducedCanonicalEventV1\",\n \"RadrootsStoredFoodAvailabilityImageV1\",\n \"RadrootsStoredFoodAvailabilityV1\"\n ],\n \"added_symbols\": [\n \"RADROOTS_EVENT_STORE_RAW_EVENT_COUNT_LIMIT_V1\",\n \"RADROOTS_EVENT_STORE_RAW_EVENT_TEXT_BYTES_LIMIT_V1\",\n \"RADROOTS_EVENT_STORE_RAW_TAG_COUNT_LIMIT_V1\",\n \"RADROOTS_EVENT_STORE_RAW_TAG_TEXT_BYTES_LIMIT_V1\",\n \"RADROOTS_EVENT_STORE_RETAINED_SOURCE_GENERATION_LIMIT_V1\",\n \"RadrootsEventStoreSourceCapacityResourceV1\",\n \"RadrootsEventStoreSourceCapacityV1\"\n ],\n \"methods\": [\n \"RadrootsEventStore::source_capacity_v1\",\n \"RadrootsEventStoreSourceCapacityResourceV1::as_str\",\n \"RadrootsEventStoreSourceCapacityV1::source_generation\",\n \"RadrootsEventStoreSourceCapacityV1::raw_event_count\",\n \"RadrootsEventStoreSourceCapacityV1::raw_tag_count\",\n \"RadrootsEventStoreSourceCapacityV1::raw_event_text_bytes\",\n \"RadrootsEventStoreSourceCapacityV1::raw_tag_text_bytes\",\n \"RadrootsEventStoreSourceCapacityV1::raw_high_water_seq\",\n \"RadrootsEventStoreSourceCapacityV1::retained_generation_count\",\n \"RadrootsEventStoreSourceCapacityV1::retained_generation_limit\"\n ],\n \"error_variants\": [\n \"SourceCapacityExceeded\",\n \"SourceGenerationHistoryLimitReached\",\n \"PersistedEphemeralRawEvent\",\n \"SourceCapacityStateDrift\",\n \"SqliteMainDatabaseEncodingNotUtf8\",\n \"RollbackWouldDiscardSourceGenerationHistory\"\n ],\n \"removed_symbols\": [\n \"RadrootsEventStoreReconciliationResource\",\n \"RadrootsEventStoreError::ReconciliationCapacityExceeded\"\n ],\n \"breaking_replacements\": [\n {\n \"removed\": \"RadrootsEventStoreReconciliationResource\",\n \"replacement\": \"RadrootsEventStoreSourceCapacityResourceV1\"\n },\n {\n \"removed\": \"RadrootsEventStoreError::ReconciliationCapacityExceeded\",\n \"replacement\": \"RadrootsEventStoreError::SourceCapacityExceeded\"\n }\n ]\n },\n \"result_vector\": {\n \"canonical_path\": \"contracts/conformance/vectors/event_store/source_maintenance.v1.json\",\n \"mirror_path\": \"crates/event_store/tests/fixtures/source_maintenance.v1.json\",\n \"byte_length\": 16253,\n \"sha256\": \"997aba2604a2b9d199fb87dc9d07942ca50d91863aeadcf3eeacf16d191dd71f\",\n \"hash_algorithm\": \"sha256_bytes_v1\",\n \"executor_id\": \"radroots_event_store.source_maintenance_v1.result_vector_executor.v1\",\n \"executor_path\": \"crates/event_store/tests/source_maintenance_v1_result_vector.rs\",\n \"executor_test\": \"source_maintenance_v1_result_vector\",\n \"executor_byte_length\": 23510,\n \"executor_sha256\": \"a7487afdfe19fc5fc794811d0f0e6035203e1aabcf0a33a1d398f6b3555d38f3\",\n \"executor_hash_algorithm\": \"sha256_bytes_v1\"\n }\n}\n"; pub(crate) const SOURCE_MAINTENANCE_MANIFEST_BYTE_LENGTH: usize = 33844; pub(crate) const SOURCE_MAINTENANCE_MANIFEST_SHA256: &str = - "a349dd1037306c7060f95d6edc0ef71306b030fbf915af7e90d7ed8c65805f27"; + "666e233dc711f8dc03d4794339dbd78cd1c6fc8659111eb836218c8bc4b11cbf"; pub(crate) const SOURCE_MAINTENANCE_MANIFEST_SCHEMA_VERSION: u32 = 1; pub(crate) const SOURCE_MAINTENANCE_CONTRACT_ID: &str = "radroots_event_store.source_maintenance_v1"; diff --git a/crates/test_fixtures/Cargo.toml b/crates/test_fixtures/Cargo.toml @@ -19,6 +19,5 @@ radroots_event = { workspace = true, features = [ "std", "serde", "knowledge", - "knowledge-nip54", ] } radroots_identity = { workspace = true } diff --git a/crates/trade/Cargo.toml b/crates/trade/Cargo.toml @@ -22,7 +22,6 @@ dto-bindgen = [ "serde_json", "dep:dto_bindgen", "dep:dto_bindgen_core", - "radroots_event/dto-bindgen", ] std = [ "radroots_authority/std", diff --git a/crates/trade/src/identity.rs b/crates/trade/src/identity.rs @@ -64,7 +64,9 @@ impl FromStr for RadrootsTradeId { #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsTradeLocator { pub trade_id: RadrootsTradeId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub root_event_id: Option<RadrootsEventId>, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub listing_addr: Option<RadrootsClassifiedListingAddress>, #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub buyer_pubkey: Option<PublicKey>, @@ -118,7 +120,9 @@ impl RadrootsTradeLocator { #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsTradeLocatorCandidate { pub trade_id: RadrootsTradeId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub root_event_id: RadrootsEventId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub listing_addr: RadrootsClassifiedListingAddress, #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub buyer_pubkey: PublicKey, diff --git a/crates/trade/src/workflow.rs b/crates/trade/src/workflow.rs @@ -171,6 +171,7 @@ pub struct RadrootsTradeMutationRecordV1 { #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsTradePrivateTermsEvidenceV1 { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub candidate_id: RadrootsTradeCandidateId, pub state: RadrootsTradePrivateTermsStateV1, } @@ -189,7 +190,9 @@ pub enum RadrootsTradeAttestationResultV1 { #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[derive(Clone, Debug, PartialEq, Eq)] pub struct RadrootsTradeAttestationRecordV1 { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub event_id: RadrootsEventId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub claim_mutation_id: RadrootsTradeMutationId, pub result: RadrootsTradeAttestationResultV1, } @@ -201,12 +204,15 @@ pub struct RadrootsTradeAttestationRecordV1 { pub struct RadrootsTradeProjectionV1 { pub reducer_contract_id: String, pub reducer_version: u16, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub trade_id: RadrootsTradeId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub root_mutation_id: Option<RadrootsTradeMutationId>, #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub buyer_pubkey: Option<PublicKey>, #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub seller_pubkey: Option<PublicKey>, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub farm_id: Option<RadrootsDTag>, pub negotiation_state: RadrootsTradeNegotiationStateV1, pub agreement_state: RadrootsTradeAgreementStateV1, @@ -216,14 +222,22 @@ pub struct RadrootsTradeProjectionV1 { pub attestation_state: RadrootsTradeAttestationStateV1, pub fulfillment_state: RadrootsTradeFulfillmentStateV1, pub payment_state: RadrootsTradePaymentStateV1, + #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Array<string>")))] pub candidate_heads: Vec<RadrootsTradeMutationId>, pub agreement_claims: Vec<RadrootsTradeAgreementClaimV1>, + #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Array<string>")))] pub active_agreement_claim_ids: Vec<RadrootsTradeMutationId>, + #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Array<string>")))] pub contested_claim_ids: Vec<RadrootsTradeMutationId>, + #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Array<string>")))] pub cancelled_claim_ids: Vec<RadrootsTradeMutationId>, + #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Array<string>")))] pub declined_candidate_ids: Vec<RadrootsTradeCandidateId>, + #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Array<string>")))] pub missing_parent_ids: Vec<RadrootsTradeMutationId>, + #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Array<string>")))] pub missing_proposal_ids: Vec<RadrootsTradeMutationId>, + #[cfg_attr(feature = "dto-bindgen", dto(ts(type = "Array<string>")))] pub unsupported_mutation_ids: Vec<RadrootsTradeMutationId>, pub issues: Vec<RadrootsTradeReducerIssueV1>, pub attestations: Vec<RadrootsTradeAttestationRecordV1>, @@ -295,8 +309,11 @@ impl RadrootsTradeProjectionV1 { #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord)] pub struct RadrootsTradeAgreementClaimV1 { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub claim_mutation_id: RadrootsTradeMutationId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub proposal_mutation_id: RadrootsTradeMutationId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub candidate_id: RadrootsTradeCandidateId, #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] pub candidate_author_pubkey: PublicKey, @@ -314,60 +331,81 @@ pub enum RadrootsTradeReducerIssueV1 { MultipleRootProposals, MissingMutationId, TradeIdentityMismatch { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] mutation_id: RadrootsTradeMutationId, }, UnsupportedSchema { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] mutation_id: RadrootsTradeMutationId, schema_version: u16, }, InvalidMutation { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] mutation_id: Option<RadrootsTradeMutationId>, reason: String, }, MissingParent { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] mutation_id: RadrootsTradeMutationId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] parent_mutation_id: RadrootsTradeMutationId, }, MissingProposal { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] decision_mutation_id: RadrootsTradeMutationId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] proposal_mutation_id: RadrootsTradeMutationId, }, CandidateIdMismatch { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] decision_mutation_id: RadrootsTradeMutationId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] proposal_mutation_id: RadrootsTradeMutationId, }, DecisionAuthorMismatch { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] decision_mutation_id: RadrootsTradeMutationId, }, DecisionParentMissing { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] decision_mutation_id: RadrootsTradeMutationId, + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] proposal_mutation_id: RadrootsTradeMutationId, }, MissingSellerReservation { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] decision_mutation_id: RadrootsTradeMutationId, }, ReservationCandidateMismatch { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] decision_mutation_id: RadrootsTradeMutationId, }, ReservationAuthorityMismatch { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] decision_mutation_id: RadrootsTradeMutationId, }, ReservationLineMismatch { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] decision_mutation_id: RadrootsTradeMutationId, }, DecisionConflict { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] proposal_mutation_id: RadrootsTradeMutationId, }, DoubleAcceptance { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] proposal_mutation_id: RadrootsTradeMutationId, }, CancellationConflict { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] cancellation_mutation_id: RadrootsTradeMutationId, }, InvalidCausalChain { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] mutation_id: RadrootsTradeMutationId, }, PrivateTermsUnavailable { + #[cfg_attr(feature = "dto-bindgen", dto(as = "string"))] candidate_id: RadrootsTradeCandidateId, }, ProjectionDigestUnavailable { diff --git a/docs/api/radroots_event.txt b/docs/api/radroots_event.txt @@ -7,7 +7,6 @@ pub radroots_event::admission::Error::IdMismatch::actual: radroots_event::id::Ra pub radroots_event::admission::Error::IdMismatch::expected: radroots_event::id::RadrootsEventId pub radroots_event::admission::Error::MalformedEnvelope pub radroots_event::admission::Error::SignatureInvalid -pub radroots_event::admission::Error::SignatureVerificationUnavailable impl radroots_event::Error pub const fn radroots_event::Error::code(&self) -> &'static str impl core::error::Error for radroots_event::Error @@ -34,7 +33,7 @@ pub struct radroots_event::admission::IdVerifiedEvent(_) impl radroots_event::admission::IdVerifiedEvent pub const fn radroots_event::admission::IdVerifiedEvent::event(&self) -> &radroots_event::envelope::RadrootsEventEnvelope pub fn radroots_event::admission::IdVerifiedEvent::into_event(self) -> radroots_event::envelope::RadrootsEventEnvelope -pub fn radroots_event::admission::IdVerifiedEvent::verify_signature(self) -> core::result::Result<radroots_event::VerifiedEvent, radroots_event::Error> +pub fn radroots_event::admission::IdVerifiedEvent::verify_signature<V>(self, &V) -> core::result::Result<radroots_event::VerifiedEvent, radroots_event::Error> where V: radroots_event::admission::SignatureVerifier + ?core::marker::Sized pub struct radroots_event::admission::RawEvent(_) impl radroots_event::admission::RawEvent pub const fn radroots_event::admission::RawEvent::event(&self) -> &radroots_event::envelope::RadrootsEventEnvelope @@ -56,6 +55,8 @@ pub trait radroots_event::admission::AdmissionPolicy pub type radroots_event::admission::AdmissionPolicy::Error pub fn radroots_event::admission::AdmissionPolicy::admit(&self, &radroots_event::admission::ContractValidatedEvent) -> core::result::Result<(), Self::Error> pub fn radroots_event::admission::AdmissionPolicy::policy_id(&self) -> &'static str +pub trait radroots_event::admission::SignatureVerifier: core::marker::Send + core::marker::Sync +pub fn radroots_event::admission::SignatureVerifier::verify_signature(&self, &radroots_event::envelope::RadrootsEventEnvelope) -> core::result::Result<(), radroots_event::Error> pub trait radroots_event::admission::VisibilityPolicy pub type radroots_event::admission::VisibilityPolicy::Error pub fn radroots_event::admission::VisibilityPolicy::make_visible(&self, &radroots_event::admission::AdmittedEvent) -> core::result::Result<(), Self::Error> @@ -492,14 +493,6 @@ pub fn radroots_event::draft::RadrootsDraftError::from(radroots_event::id::Radro impl core::error::Error for radroots_event::draft::RadrootsDraftError impl core::fmt::Display for radroots_event::draft::RadrootsDraftError pub fn radroots_event::draft::RadrootsDraftError::fmt(&self, &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub enum radroots_event::draft::RadrootsSignatureVerificationError -pub radroots_event::draft::RadrootsSignatureVerificationError::InvalidEventId -pub radroots_event::draft::RadrootsSignatureVerificationError::InvalidPubkey -pub radroots_event::draft::RadrootsSignatureVerificationError::InvalidSignature -pub radroots_event::draft::RadrootsSignatureVerificationError::VerificationFailed -impl core::error::Error for radroots_event::draft::RadrootsSignatureVerificationError -impl core::fmt::Display for radroots_event::draft::RadrootsSignatureVerificationError -pub fn radroots_event::draft::RadrootsSignatureVerificationError::fmt(&self, &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub enum radroots_event::draft::RadrootsSignedEventError pub radroots_event::draft::RadrootsSignedEventError::Envelope(radroots_event::envelope::RadrootsEventEnvelopeError) pub radroots_event::draft::RadrootsSignedEventError::RawJson(crate::wire::v1::RadrootsEventWireError) @@ -548,7 +541,6 @@ pub fn radroots_event::draft::RadrootsSignedEvent::sig(&self) -> &radroots_event pub fn radroots_event::draft::RadrootsSignedEvent::sig_str(&self) -> &str pub fn radroots_event::draft::RadrootsSignedEvent::signature_hex(&self) -> alloc::string::String pub fn radroots_event::draft::RadrootsSignedEvent::tags_as_vec(&self) -> alloc::vec::Vec<alloc::vec::Vec<alloc::string::String>> -pub fn radroots_event::draft::RadrootsSignedEvent::verify_signature(self) -> core::result::Result<radroots_event::draft::RadrootsVerifiedSignedEvent, radroots_event::draft::RadrootsSignatureVerificationError> pub fn radroots_event::draft::RadrootsSignedEvent::wire(&self) -> &RadrootsNip01EventWire impl serde_core::ser::Serialize for radroots_event::draft::RadrootsSignedEvent pub fn radroots_event::draft::RadrootsSignedEvent::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer @@ -563,10 +555,6 @@ pub radroots_event::draft::RadrootsSignedEventParts::pubkey: alloc::string::Stri pub radroots_event::draft::RadrootsSignedEventParts::raw_json: alloc::string::String pub radroots_event::draft::RadrootsSignedEventParts::sig: alloc::string::String pub radroots_event::draft::RadrootsSignedEventParts::tags: alloc::vec::Vec<alloc::vec::Vec<alloc::string::String>> -pub struct radroots_event::draft::RadrootsVerifiedSignedEvent -impl radroots_event::draft::RadrootsVerifiedSignedEvent -pub fn radroots_event::draft::RadrootsVerifiedSignedEvent::into_signed_event(self) -> radroots_event::draft::RadrootsSignedEvent -pub fn radroots_event::draft::RadrootsVerifiedSignedEvent::signed_event(&self) -> &radroots_event::draft::RadrootsSignedEvent pub fn radroots_event::draft::compute_nip01_event_id(&str, u64, u32, &[alloc::vec::Vec<alloc::string::String>], &str) -> core::result::Result<radroots_event::id::RadrootsEventId, radroots_event::draft::RadrootsDraftError> pub fn radroots_event::draft::nip01_event_id_preimage(&str, u64, u32, &[alloc::vec::Vec<alloc::string::String>], &str) -> core::result::Result<alloc::string::String, radroots_event::draft::RadrootsDraftError> pub fn radroots_event::draft::validate_signed_nostr_event_matches_draft(&radroots_event::draft::RadrootsSignedEvent, &radroots_event::draft::RadrootsEventDraft) -> core::result::Result<(), radroots_event::draft::RadrootsDraftError> @@ -803,8 +791,6 @@ pub fn radroots_event::envelope::RadrootsEventEnvelope::tag_slices(&self) -> &[r pub fn radroots_event::envelope::RadrootsEventEnvelope::tags(&self) -> &radroots_event::envelope::RadrootsEventTags pub fn radroots_event::envelope::RadrootsEventEnvelope::tags_as_vec(&self) -> alloc::vec::Vec<alloc::vec::Vec<alloc::string::String>> pub fn radroots_event::envelope::RadrootsEventEnvelope::to_nip01_wire(&self) -> RadrootsNip01EventWire -impl dto_bindgen_core::descriptor::Dto for radroots_event::envelope::RadrootsEventEnvelope -pub fn radroots_event::envelope::RadrootsEventEnvelope::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::envelope::RadrootsEventEnvelopeLimits pub radroots_event::envelope::RadrootsEventEnvelopeLimits::max_content_bytes: usize pub radroots_event::envelope::RadrootsEventEnvelopeLimits::max_tag_count: usize @@ -828,8 +814,6 @@ pub const fn radroots_event::envelope::RadrootsEventKind::class(self) -> radroot pub const fn radroots_event::envelope::RadrootsEventKind::new(u32) -> Self impl core::convert::From<u32> for radroots_event::envelope::RadrootsEventKind pub fn radroots_event::envelope::RadrootsEventKind::from(u32) -> Self -impl dto_bindgen_core::descriptor::Dto for radroots_event::envelope::RadrootsEventKind -pub fn radroots_event::envelope::RadrootsEventKind::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::envelope::RadrootsEventKind pub fn radroots_event::envelope::RadrootsEventKind::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::envelope::RadrootsEventKind @@ -853,8 +837,6 @@ pub fn radroots_event::envelope::RadrootsEventTags::len(&self) -> usize pub fn radroots_event::envelope::RadrootsEventTags::new(alloc::vec::Vec<alloc::vec::Vec<alloc::string::String>>) -> core::result::Result<Self, radroots_event::envelope::RadrootsEventEnvelopeError> pub fn radroots_event::envelope::RadrootsEventTags::new_with_limits(alloc::vec::Vec<alloc::vec::Vec<alloc::string::String>>, radroots_event::envelope::RadrootsEventEnvelopeLimits) -> core::result::Result<Self, radroots_event::envelope::RadrootsEventEnvelopeError> pub fn radroots_event::envelope::RadrootsEventTags::to_vec(&self) -> alloc::vec::Vec<alloc::vec::Vec<alloc::string::String>> -impl dto_bindgen_core::descriptor::Dto for radroots_event::envelope::RadrootsEventTags -pub fn radroots_event::envelope::RadrootsEventTags::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::envelope::RadrootsEventTags pub fn radroots_event::envelope::RadrootsEventTags::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::envelope::RadrootsEventTags @@ -865,8 +847,6 @@ pub const fn radroots_event::envelope::RadrootsEventTimestamp::as_u64(self) -> u pub const fn radroots_event::envelope::RadrootsEventTimestamp::new(u64) -> Self impl core::convert::From<u64> for radroots_event::envelope::RadrootsEventTimestamp pub fn radroots_event::envelope::RadrootsEventTimestamp::from(u64) -> Self -impl dto_bindgen_core::descriptor::Dto for radroots_event::envelope::RadrootsEventTimestamp -pub fn radroots_event::envelope::RadrootsEventTimestamp::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::envelope::RadrootsEventTimestamp pub fn radroots_event::envelope::RadrootsEventTimestamp::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::envelope::RadrootsEventTimestamp @@ -893,18 +873,12 @@ pub radroots_event::farm::change_set::RadrootsGcsLocation::point: radroots_event pub radroots_event::farm::change_set::RadrootsGcsLocation::polygon: radroots_event::farm::change_set::RadrootsGeoJsonPolygon pub radroots_event::farm::change_set::RadrootsGcsLocation::soil: core::option::Option<alloc::string::String> pub radroots_event::farm::change_set::RadrootsGcsLocation::tag_0: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::change_set::RadrootsGcsLocation -pub fn radroots_event::farm::change_set::RadrootsGcsLocation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::change_set::RadrootsGeoJsonPoint pub radroots_event::farm::change_set::RadrootsGeoJsonPoint::coordinates: [f64; 2] pub radroots_event::farm::change_set::RadrootsGeoJsonPoint::type: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::change_set::RadrootsGeoJsonPoint -pub fn radroots_event::farm::change_set::RadrootsGeoJsonPoint::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::change_set::RadrootsGeoJsonPolygon pub radroots_event::farm::change_set::RadrootsGeoJsonPolygon::coordinates: alloc::vec::Vec<alloc::vec::Vec<[f64; 2]>> pub radroots_event::farm::change_set::RadrootsGeoJsonPolygon::type: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::change_set::RadrootsGeoJsonPolygon -pub fn radroots_event::farm::change_set::RadrootsGeoJsonPolygon::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::farm::coop pub struct radroots_event::farm::coop::RadrootsCoop pub radroots_event::farm::coop::RadrootsCoop::about: core::option::Option<alloc::string::String> @@ -915,21 +889,15 @@ pub radroots_event::farm::coop::RadrootsCoop::name: alloc::string::String pub radroots_event::farm::coop::RadrootsCoop::picture: core::option::Option<alloc::string::String> pub radroots_event::farm::coop::RadrootsCoop::tags: core::option::Option<alloc::vec::Vec<alloc::string::String>> pub radroots_event::farm::coop::RadrootsCoop::website: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::coop::RadrootsCoop -pub fn radroots_event::farm::coop::RadrootsCoop::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::coop::RadrootsCoopLocation pub radroots_event::farm::coop::RadrootsCoopLocation::city: core::option::Option<alloc::string::String> pub radroots_event::farm::coop::RadrootsCoopLocation::country: core::option::Option<alloc::string::String> pub radroots_event::farm::coop::RadrootsCoopLocation::gcs: radroots_event::farm::change_set::RadrootsGcsLocation pub radroots_event::farm::coop::RadrootsCoopLocation::primary: core::option::Option<alloc::string::String> pub radroots_event::farm::coop::RadrootsCoopLocation::region: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::coop::RadrootsCoopLocation -pub fn radroots_event::farm::coop::RadrootsCoopLocation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::coop::RadrootsCoopRef pub radroots_event::farm::coop::RadrootsCoopRef::d_tag: alloc::string::String pub radroots_event::farm::coop::RadrootsCoopRef::pubkey: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::coop::RadrootsCoopRef -pub fn radroots_event::farm::coop::RadrootsCoopRef::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::farm::crdt pub enum radroots_event::farm::crdt::RadrootsCrdtBackend pub radroots_event::farm::crdt::RadrootsCrdtBackend::Automerge @@ -1069,21 +1037,15 @@ pub radroots_event::farm::plot::RadrootsPlot::farm: radroots_event::farm::Radroo pub radroots_event::farm::plot::RadrootsPlot::location: core::option::Option<radroots_event::farm::plot::RadrootsPlotLocation> pub radroots_event::farm::plot::RadrootsPlot::name: alloc::string::String pub radroots_event::farm::plot::RadrootsPlot::tags: core::option::Option<alloc::vec::Vec<alloc::string::String>> -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::plot::RadrootsPlot -pub fn radroots_event::farm::plot::RadrootsPlot::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::plot::RadrootsPlotLocation pub radroots_event::farm::plot::RadrootsPlotLocation::city: core::option::Option<alloc::string::String> pub radroots_event::farm::plot::RadrootsPlotLocation::country: core::option::Option<alloc::string::String> pub radroots_event::farm::plot::RadrootsPlotLocation::gcs: radroots_event::farm::change_set::RadrootsGcsLocation pub radroots_event::farm::plot::RadrootsPlotLocation::primary: core::option::Option<alloc::string::String> pub radroots_event::farm::plot::RadrootsPlotLocation::region: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::plot::RadrootsPlotLocation -pub fn radroots_event::farm::plot::RadrootsPlotLocation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::plot::RadrootsPlotRef pub radroots_event::farm::plot::RadrootsPlotRef::d_tag: alloc::string::String pub radroots_event::farm::plot::RadrootsPlotRef::pubkey: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::plot::RadrootsPlotRef -pub fn radroots_event::farm::plot::RadrootsPlotRef::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::farm::resource_area pub struct radroots_event::farm::resource_area::RadrootsResourceArea pub radroots_event::farm::resource_area::RadrootsResourceArea::about: core::option::Option<alloc::string::String> @@ -1091,21 +1053,15 @@ pub radroots_event::farm::resource_area::RadrootsResourceArea::d_tag: alloc::str pub radroots_event::farm::resource_area::RadrootsResourceArea::location: radroots_event::farm::resource_area::RadrootsResourceAreaLocation pub radroots_event::farm::resource_area::RadrootsResourceArea::name: alloc::string::String pub radroots_event::farm::resource_area::RadrootsResourceArea::tags: core::option::Option<alloc::vec::Vec<alloc::string::String>> -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::resource_area::RadrootsResourceArea -pub fn radroots_event::farm::resource_area::RadrootsResourceArea::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::resource_area::RadrootsResourceAreaLocation pub radroots_event::farm::resource_area::RadrootsResourceAreaLocation::city: core::option::Option<alloc::string::String> pub radroots_event::farm::resource_area::RadrootsResourceAreaLocation::country: core::option::Option<alloc::string::String> pub radroots_event::farm::resource_area::RadrootsResourceAreaLocation::gcs: radroots_event::farm::change_set::RadrootsGcsLocation pub radroots_event::farm::resource_area::RadrootsResourceAreaLocation::primary: core::option::Option<alloc::string::String> pub radroots_event::farm::resource_area::RadrootsResourceAreaLocation::region: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::resource_area::RadrootsResourceAreaLocation -pub fn radroots_event::farm::resource_area::RadrootsResourceAreaLocation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::resource_area::RadrootsResourceAreaRef pub radroots_event::farm::resource_area::RadrootsResourceAreaRef::d_tag: alloc::string::String pub radroots_event::farm::resource_area::RadrootsResourceAreaRef::pubkey: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::resource_area::RadrootsResourceAreaRef -pub fn radroots_event::farm::resource_area::RadrootsResourceAreaRef::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::farm::resource_cap pub struct radroots_event::farm::resource_cap::RadrootsResourceHarvestCap pub radroots_event::farm::resource_cap::RadrootsResourceHarvestCap::cap_quantity: radroots_core::quantity::Quantity @@ -1118,13 +1074,9 @@ pub radroots_event::farm::resource_cap::RadrootsResourceHarvestCap::product: rad pub radroots_event::farm::resource_cap::RadrootsResourceHarvestCap::resource_area: radroots_event::farm::resource_area::RadrootsResourceAreaRef pub radroots_event::farm::resource_cap::RadrootsResourceHarvestCap::start: u64 pub radroots_event::farm::resource_cap::RadrootsResourceHarvestCap::tags: core::option::Option<alloc::vec::Vec<alloc::string::String>> -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::resource_cap::RadrootsResourceHarvestCap -pub fn radroots_event::farm::resource_cap::RadrootsResourceHarvestCap::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::resource_cap::RadrootsResourceHarvestProduct pub radroots_event::farm::resource_cap::RadrootsResourceHarvestProduct::category: core::option::Option<alloc::string::String> pub radroots_event::farm::resource_cap::RadrootsResourceHarvestProduct::key: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::resource_cap::RadrootsResourceHarvestProduct -pub fn radroots_event::farm::resource_cap::RadrootsResourceHarvestProduct::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::farm::workspace pub enum radroots_event::farm::workspace::RadrootsFarmWorkspaceRelayMode pub radroots_event::farm::workspace::RadrootsFarmWorkspaceRelayMode::Read @@ -1165,21 +1117,15 @@ pub radroots_event::farm::RadrootsFarm::name: alloc::string::String pub radroots_event::farm::RadrootsFarm::picture: core::option::Option<alloc::string::String> pub radroots_event::farm::RadrootsFarm::tags: core::option::Option<alloc::vec::Vec<alloc::string::String>> pub radroots_event::farm::RadrootsFarm::website: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::RadrootsFarm -pub fn radroots_event::farm::RadrootsFarm::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::RadrootsFarmPublicLocation pub radroots_event::farm::RadrootsFarmPublicLocation::city: core::option::Option<alloc::string::String> pub radroots_event::farm::RadrootsFarmPublicLocation::country: core::option::Option<alloc::string::String> pub radroots_event::farm::RadrootsFarmPublicLocation::geohash: alloc::string::String pub radroots_event::farm::RadrootsFarmPublicLocation::primary: alloc::string::String pub radroots_event::farm::RadrootsFarmPublicLocation::region: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::RadrootsFarmPublicLocation -pub fn radroots_event::farm::RadrootsFarmPublicLocation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::farm::RadrootsFarmRef pub radroots_event::farm::RadrootsFarmRef::d_tag: alloc::string::String pub radroots_event::farm::RadrootsFarmRef::pubkey: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::farm::RadrootsFarmRef -pub fn radroots_event::farm::RadrootsFarmRef::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::food pub mod radroots_event::food::availability #[non_exhaustive] pub enum radroots_event::food::availability::RadrootsFoodAvailabilityError @@ -1449,8 +1395,6 @@ pub fn radroots_event::id::RadrootsAddressableCoordinate::fmt(&self, &mut core:: impl core::str::traits::FromStr for radroots_event::id::RadrootsAddressableCoordinate pub type radroots_event::id::RadrootsAddressableCoordinate::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsAddressableCoordinate::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsAddressableCoordinate -pub fn radroots_event::id::RadrootsAddressableCoordinate::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsAddressableCoordinate pub fn radroots_event::id::RadrootsAddressableCoordinate::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsAddressableCoordinate @@ -1486,8 +1430,6 @@ pub fn radroots_event::id::RadrootsTradeCandidateId::fmt(&self, &mut core::fmt:: impl core::str::traits::FromStr for radroots_event::id::RadrootsTradeCandidateId pub type radroots_event::id::RadrootsTradeCandidateId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsTradeCandidateId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsTradeCandidateId -pub fn radroots_event::id::RadrootsTradeCandidateId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsTradeCandidateId pub fn radroots_event::id::RadrootsTradeCandidateId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsTradeCandidateId @@ -1512,8 +1454,6 @@ pub fn radroots_event::id::RadrootsClassifiedListingAddress::fmt(&self, &mut cor impl core::str::traits::FromStr for radroots_event::id::RadrootsClassifiedListingAddress pub type radroots_event::id::RadrootsClassifiedListingAddress::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsClassifiedListingAddress::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsClassifiedListingAddress -pub fn radroots_event::id::RadrootsClassifiedListingAddress::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsClassifiedListingAddress pub fn radroots_event::id::RadrootsClassifiedListingAddress::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsClassifiedListingAddress @@ -1538,8 +1478,6 @@ pub fn radroots_event::id::RadrootsDTag::fmt(&self, &mut core::fmt::Formatter<'_ impl core::str::traits::FromStr for radroots_event::id::RadrootsDTag pub type radroots_event::id::RadrootsDTag::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsDTag::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsDTag -pub fn radroots_event::id::RadrootsDTag::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsDTag pub fn radroots_event::id::RadrootsDTag::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsDTag @@ -1574,8 +1512,6 @@ pub fn radroots_event::id::RadrootsEventId::fmt(&self, &mut core::fmt::Formatter impl core::str::traits::FromStr for radroots_event::id::RadrootsEventId pub type radroots_event::id::RadrootsEventId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsEventId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsEventId -pub fn radroots_event::id::RadrootsEventId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsEventId pub fn radroots_event::id::RadrootsEventId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsEventId @@ -1605,8 +1541,6 @@ pub fn radroots_event::id::RadrootsEventPointer::fmt(&self, &mut core::fmt::Form impl core::str::traits::FromStr for radroots_event::id::RadrootsEventPointer pub type radroots_event::id::RadrootsEventPointer::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsEventPointer::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsEventPointer -pub fn radroots_event::id::RadrootsEventPointer::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsEventPointer pub fn radroots_event::id::RadrootsEventPointer::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsEventPointer @@ -1636,8 +1570,6 @@ pub fn radroots_event::id::RadrootsEventSignature::fmt(&self, &mut core::fmt::Fo impl core::str::traits::FromStr for radroots_event::id::RadrootsEventSignature pub type radroots_event::id::RadrootsEventSignature::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsEventSignature::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsEventSignature -pub fn radroots_event::id::RadrootsEventSignature::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsEventSignature pub fn radroots_event::id::RadrootsEventSignature::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsEventSignature @@ -1667,8 +1599,6 @@ pub fn radroots_event::id::RadrootsTradeMutationId::fmt(&self, &mut core::fmt::F impl core::str::traits::FromStr for radroots_event::id::RadrootsTradeMutationId pub type radroots_event::id::RadrootsTradeMutationId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsTradeMutationId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsTradeMutationId -pub fn radroots_event::id::RadrootsTradeMutationId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsTradeMutationId pub fn radroots_event::id::RadrootsTradeMutationId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsTradeMutationId @@ -1728,8 +1658,6 @@ pub fn radroots_event::id::RadrootsAddressableCoordinate::fmt(&self, &mut core:: impl core::str::traits::FromStr for radroots_event::id::RadrootsAddressableCoordinate pub type radroots_event::id::RadrootsAddressableCoordinate::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsAddressableCoordinate::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsAddressableCoordinate -pub fn radroots_event::id::RadrootsAddressableCoordinate::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsAddressableCoordinate pub fn radroots_event::id::RadrootsAddressableCoordinate::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsAddressableCoordinate @@ -1760,8 +1688,6 @@ pub fn radroots_event::id::RadrootsClassifiedListingAddress::fmt(&self, &mut cor impl core::str::traits::FromStr for radroots_event::id::RadrootsClassifiedListingAddress pub type radroots_event::id::RadrootsClassifiedListingAddress::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsClassifiedListingAddress::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsClassifiedListingAddress -pub fn radroots_event::id::RadrootsClassifiedListingAddress::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsClassifiedListingAddress pub fn radroots_event::id::RadrootsClassifiedListingAddress::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsClassifiedListingAddress @@ -1786,8 +1712,6 @@ pub fn radroots_event::id::RadrootsDTag::fmt(&self, &mut core::fmt::Formatter<'_ impl core::str::traits::FromStr for radroots_event::id::RadrootsDTag pub type radroots_event::id::RadrootsDTag::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsDTag::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsDTag -pub fn radroots_event::id::RadrootsDTag::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsDTag pub fn radroots_event::id::RadrootsDTag::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsDTag @@ -1812,8 +1736,6 @@ pub fn radroots_event::id::RadrootsEconomicsDigest::fmt(&self, &mut core::fmt::F impl core::str::traits::FromStr for radroots_event::id::RadrootsEconomicsDigest pub type radroots_event::id::RadrootsEconomicsDigest::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsEconomicsDigest::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsEconomicsDigest -pub fn radroots_event::id::RadrootsEconomicsDigest::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsEconomicsDigest pub fn radroots_event::id::RadrootsEconomicsDigest::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsEconomicsDigest @@ -1848,8 +1770,6 @@ pub fn radroots_event::id::RadrootsEventId::fmt(&self, &mut core::fmt::Formatter impl core::str::traits::FromStr for radroots_event::id::RadrootsEventId pub type radroots_event::id::RadrootsEventId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsEventId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsEventId -pub fn radroots_event::id::RadrootsEventId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsEventId pub fn radroots_event::id::RadrootsEventId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsEventId @@ -1879,8 +1799,6 @@ pub fn radroots_event::id::RadrootsEventPointer::fmt(&self, &mut core::fmt::Form impl core::str::traits::FromStr for radroots_event::id::RadrootsEventPointer pub type radroots_event::id::RadrootsEventPointer::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsEventPointer::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsEventPointer -pub fn radroots_event::id::RadrootsEventPointer::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsEventPointer pub fn radroots_event::id::RadrootsEventPointer::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsEventPointer @@ -1910,8 +1828,6 @@ pub fn radroots_event::id::RadrootsEventSignature::fmt(&self, &mut core::fmt::Fo impl core::str::traits::FromStr for radroots_event::id::RadrootsEventSignature pub type radroots_event::id::RadrootsEventSignature::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsEventSignature::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsEventSignature -pub fn radroots_event::id::RadrootsEventSignature::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsEventSignature pub fn radroots_event::id::RadrootsEventSignature::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsEventSignature @@ -1936,8 +1852,6 @@ pub fn radroots_event::id::RadrootsInventoryBinId::fmt(&self, &mut core::fmt::Fo impl core::str::traits::FromStr for radroots_event::id::RadrootsInventoryBinId pub type radroots_event::id::RadrootsInventoryBinId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsInventoryBinId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsInventoryBinId -pub fn radroots_event::id::RadrootsInventoryBinId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsInventoryBinId pub fn radroots_event::id::RadrootsInventoryBinId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsInventoryBinId @@ -1997,8 +1911,6 @@ pub fn radroots_event::id::RadrootsOrderId::fmt(&self, &mut core::fmt::Formatter impl core::str::traits::FromStr for radroots_event::id::RadrootsOrderId pub type radroots_event::id::RadrootsOrderId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsOrderId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsOrderId -pub fn radroots_event::id::RadrootsOrderId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsOrderId pub fn radroots_event::id::RadrootsOrderId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsOrderId @@ -2023,8 +1935,6 @@ pub fn radroots_event::id::RadrootsOrderQuoteId::fmt(&self, &mut core::fmt::Form impl core::str::traits::FromStr for radroots_event::id::RadrootsOrderQuoteId pub type radroots_event::id::RadrootsOrderQuoteId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsOrderQuoteId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsOrderQuoteId -pub fn radroots_event::id::RadrootsOrderQuoteId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsOrderQuoteId pub fn radroots_event::id::RadrootsOrderQuoteId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsOrderQuoteId @@ -2049,8 +1959,6 @@ pub fn radroots_event::id::RadrootsRelayUrl::fmt(&self, &mut core::fmt::Formatte impl core::str::traits::FromStr for radroots_event::id::RadrootsRelayUrl pub type radroots_event::id::RadrootsRelayUrl::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsRelayUrl::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsRelayUrl -pub fn radroots_event::id::RadrootsRelayUrl::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsRelayUrl pub fn radroots_event::id::RadrootsRelayUrl::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsRelayUrl @@ -2080,8 +1988,6 @@ pub fn radroots_event::id::RadrootsTradeCandidateId::fmt(&self, &mut core::fmt:: impl core::str::traits::FromStr for radroots_event::id::RadrootsTradeCandidateId pub type radroots_event::id::RadrootsTradeCandidateId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsTradeCandidateId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsTradeCandidateId -pub fn radroots_event::id::RadrootsTradeCandidateId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsTradeCandidateId pub fn radroots_event::id::RadrootsTradeCandidateId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsTradeCandidateId @@ -2111,8 +2017,6 @@ pub fn radroots_event::id::RadrootsTradeId::fmt(&self, &mut core::fmt::Formatter impl core::str::traits::FromStr for radroots_event::id::RadrootsTradeId pub type radroots_event::id::RadrootsTradeId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsTradeId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsTradeId -pub fn radroots_event::id::RadrootsTradeId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsTradeId pub fn radroots_event::id::RadrootsTradeId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsTradeId @@ -2142,8 +2046,6 @@ pub fn radroots_event::id::RadrootsTradeMutationId::fmt(&self, &mut core::fmt::F impl core::str::traits::FromStr for radroots_event::id::RadrootsTradeMutationId pub type radroots_event::id::RadrootsTradeMutationId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsTradeMutationId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsTradeMutationId -pub fn radroots_event::id::RadrootsTradeMutationId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsTradeMutationId pub fn radroots_event::id::RadrootsTradeMutationId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsTradeMutationId @@ -2173,8 +2075,6 @@ pub fn radroots_event::id::RadrootsTradeId::fmt(&self, &mut core::fmt::Formatter impl core::str::traits::FromStr for radroots_event::id::RadrootsTradeId pub type radroots_event::id::RadrootsTradeId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsTradeId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsTradeId -pub fn radroots_event::id::RadrootsTradeId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsTradeId pub fn radroots_event::id::RadrootsTradeId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsTradeId @@ -2189,14 +2089,10 @@ pub radroots_event::knowledge::RadrootsKnowledgeLocationPrecision::ExactPublic pub radroots_event::knowledge::RadrootsKnowledgeLocationPrecision::Locality pub radroots_event::knowledge::RadrootsKnowledgeLocationPrecision::None pub radroots_event::knowledge::RadrootsKnowledgeLocationPrecision::Region -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeLocationPrecision -pub fn radroots_event::knowledge::RadrootsKnowledgeLocationPrecision::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::knowledge::RadrootsKnowledgeReviewScope pub radroots_event::knowledge::RadrootsKnowledgeReviewScope::AddressableCoordinateAtPublishedAt pub radroots_event::knowledge::RadrootsKnowledgeReviewScope::PolicyLatest pub radroots_event::knowledge::RadrootsKnowledgeReviewScope::SpecificVersion -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeReviewScope -pub fn radroots_event::knowledge::RadrootsKnowledgeReviewScope::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::knowledge::RadrootsKnowledgeValidationError pub radroots_event::knowledge::RadrootsKnowledgeValidationError::EmptyField(&'static str) pub radroots_event::knowledge::RadrootsKnowledgeValidationError::InvalidField(&'static str) @@ -2223,8 +2119,6 @@ pub radroots_event::knowledge::RadrootsAddressableRef::d_tag: alloc::string::Str pub radroots_event::knowledge::RadrootsAddressableRef::kind: u32 pub radroots_event::knowledge::RadrootsAddressableRef::pubkey: alloc::string::String pub radroots_event::knowledge::RadrootsAddressableRef::relays: alloc::vec::Vec<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsAddressableRef -pub fn radroots_event::knowledge::RadrootsAddressableRef::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsContributionAttestation pub radroots_event::knowledge::RadrootsContributionAttestation::contribution_type: alloc::string::String pub radroots_event::knowledge::RadrootsContributionAttestation::contributor_pubkey: alloc::string::String @@ -2233,8 +2127,6 @@ pub radroots_event::knowledge::RadrootsContributionAttestation::schema: alloc::s pub radroots_event::knowledge::RadrootsContributionAttestation::schema_version: u16 pub radroots_event::knowledge::RadrootsContributionAttestation::subject_refs: alloc::vec::Vec<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsContributionAttestation::summary: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsContributionAttestation -pub fn radroots_event::knowledge::RadrootsContributionAttestation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsEvidenceBounty pub radroots_event::knowledge::RadrootsEvidenceBounty::closes_at: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsEvidenceBounty::d_tag: alloc::string::String @@ -2245,8 +2137,6 @@ pub radroots_event::knowledge::RadrootsEvidenceBounty::summary: core::option::Op pub radroots_event::knowledge::RadrootsEvidenceBounty::target_refs: alloc::vec::Vec<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsEvidenceBounty::title: alloc::string::String pub radroots_event::knowledge::RadrootsEvidenceBounty::topics: alloc::vec::Vec<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsEvidenceBounty -pub fn radroots_event::knowledge::RadrootsEvidenceBounty::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeChangeProposal pub radroots_event::knowledge::RadrootsKnowledgeChangeProposal::evidence_refs: alloc::vec::Vec<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsKnowledgeChangeProposal::proposal_type: alloc::string::String @@ -2256,8 +2146,6 @@ pub radroots_event::knowledge::RadrootsKnowledgeChangeProposal::schema_version: pub radroots_event::knowledge::RadrootsKnowledgeChangeProposal::summary: alloc::string::String pub radroots_event::knowledge::RadrootsKnowledgeChangeProposal::supersedes: alloc::vec::Vec<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsKnowledgeChangeProposal::target: radroots_event::tag::RadrootsEventRef -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeChangeProposal -pub fn radroots_event::knowledge::RadrootsKnowledgeChangeProposal::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeCitationSpan pub radroots_event::knowledge::RadrootsKnowledgeCitationSpan::artifact_ref: core::option::Option<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsKnowledgeCitationSpan::chunk_id: core::option::Option<alloc::string::String> @@ -2266,8 +2154,6 @@ pub radroots_event::knowledge::RadrootsKnowledgeCitationSpan::page_start: core:: pub radroots_event::knowledge::RadrootsKnowledgeCitationSpan::quote_hash: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeCitationSpan::section_path: alloc::vec::Vec<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeCitationSpan::source_ref: radroots_event::tag::RadrootsEventRef -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeCitationSpan -pub fn radroots_event::knowledge::RadrootsKnowledgeCitationSpan::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeClaim pub radroots_event::knowledge::RadrootsKnowledgeClaim::applies_to: alloc::vec::Vec<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeClaim::author_asserted_confidence: core::option::Option<alloc::string::String> @@ -2278,16 +2164,12 @@ pub radroots_event::knowledge::RadrootsKnowledgeClaim::schema_version: u16 pub radroots_event::knowledge::RadrootsKnowledgeClaim::supersedes: alloc::vec::Vec<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsKnowledgeClaim::text: alloc::string::String pub radroots_event::knowledge::RadrootsKnowledgeClaim::topics: alloc::vec::Vec<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeClaim -pub fn radroots_event::knowledge::RadrootsKnowledgeClaim::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeFieldContext pub radroots_event::knowledge::RadrootsKnowledgeFieldContext::context_tags: alloc::vec::Vec<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeFieldContext::location_precision: radroots_event::knowledge::RadrootsKnowledgeLocationPrecision pub radroots_event::knowledge::RadrootsKnowledgeFieldContext::private_location_ref: core::option::Option<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsKnowledgeFieldContext::public_location: core::option::Option<radroots_event::knowledge::RadrootsKnowledgeLocation> pub radroots_event::knowledge::RadrootsKnowledgeFieldContext::topics: alloc::vec::Vec<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeFieldContext -pub fn radroots_event::knowledge::RadrootsKnowledgeFieldContext::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeFieldReport pub radroots_event::knowledge::RadrootsKnowledgeFieldReport::artifact_refs: alloc::vec::Vec<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsKnowledgeFieldReport::context: radroots_event::knowledge::RadrootsKnowledgeFieldContext @@ -2299,36 +2181,26 @@ pub radroots_event::knowledge::RadrootsKnowledgeFieldReport::schema: alloc::stri pub radroots_event::knowledge::RadrootsKnowledgeFieldReport::schema_version: u16 pub radroots_event::knowledge::RadrootsKnowledgeFieldReport::summary: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeFieldReport::title: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeFieldReport -pub fn radroots_event::knowledge::RadrootsKnowledgeFieldReport::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeLocation pub radroots_event::knowledge::RadrootsKnowledgeLocation::geohash: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeLocation::label: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeLocation::locality: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeLocation::region: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeLocation -pub fn radroots_event::knowledge::RadrootsKnowledgeLocation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeNodeRef pub radroots_event::knowledge::RadrootsKnowledgeNodeRef::address_ref: core::option::Option<radroots_event::knowledge::RadrootsAddressableRef> pub radroots_event::knowledge::RadrootsKnowledgeNodeRef::event_ref: core::option::Option<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsKnowledgeNodeRef::external_id: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeNodeRef::label: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeNodeRef::node_type: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeNodeRef -pub fn radroots_event::knowledge::RadrootsKnowledgeNodeRef::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeObservation pub radroots_event::knowledge::RadrootsKnowledgeObservation::observation_type: alloc::string::String pub radroots_event::knowledge::RadrootsKnowledgeObservation::observed_at: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeObservation::text: alloc::string::String pub radroots_event::knowledge::RadrootsKnowledgeObservation::values: alloc::vec::Vec<radroots_event::knowledge::RadrootsKnowledgeObservationValue> -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeObservation -pub fn radroots_event::knowledge::RadrootsKnowledgeObservation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeObservationValue pub radroots_event::knowledge::RadrootsKnowledgeObservationValue::key: alloc::string::String pub radroots_event::knowledge::RadrootsKnowledgeObservationValue::unit: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeObservationValue::value: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeObservationValue -pub fn radroots_event::knowledge::RadrootsKnowledgeObservationValue::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeRelation pub radroots_event::knowledge::RadrootsKnowledgeRelation::author_asserted_confidence: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeRelation::object: radroots_event::knowledge::RadrootsKnowledgeNodeRef @@ -2338,8 +2210,6 @@ pub radroots_event::knowledge::RadrootsKnowledgeRelation::schema_version: u16 pub radroots_event::knowledge::RadrootsKnowledgeRelation::subject: radroots_event::knowledge::RadrootsKnowledgeNodeRef pub radroots_event::knowledge::RadrootsKnowledgeRelation::supersedes: alloc::vec::Vec<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsKnowledgeRelation::support_refs: alloc::vec::Vec<radroots_event::tag::RadrootsEventRef> -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeRelation -pub fn radroots_event::knowledge::RadrootsKnowledgeRelation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeReview pub radroots_event::knowledge::RadrootsKnowledgeReview::evidence_refs: alloc::vec::Vec<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsKnowledgeReview::notes: core::option::Option<alloc::string::String> @@ -2349,14 +2219,10 @@ pub radroots_event::knowledge::RadrootsKnowledgeReview::schema_version: u16 pub radroots_event::knowledge::RadrootsKnowledgeReview::scores: alloc::vec::Vec<radroots_event::knowledge::RadrootsKnowledgeReviewScore> pub radroots_event::knowledge::RadrootsKnowledgeReview::target: radroots_event::knowledge::RadrootsKnowledgeReviewTarget pub radroots_event::knowledge::RadrootsKnowledgeReview::verdict: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeReview -pub fn radroots_event::knowledge::RadrootsKnowledgeReview::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeReviewScore pub radroots_event::knowledge::RadrootsKnowledgeReviewScore::dimension: alloc::string::String pub radroots_event::knowledge::RadrootsKnowledgeReviewScore::note: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeReviewScore::value: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeReviewScore -pub fn radroots_event::knowledge::RadrootsKnowledgeReviewScore::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeReviewTarget pub radroots_event::knowledge::RadrootsKnowledgeReviewTarget::address: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeReviewTarget::author_pubkey: alloc::string::String @@ -2364,8 +2230,6 @@ pub radroots_event::knowledge::RadrootsKnowledgeReviewTarget::event_id: alloc::s pub radroots_event::knowledge::RadrootsKnowledgeReviewTarget::kind: u32 pub radroots_event::knowledge::RadrootsKnowledgeReviewTarget::relays: alloc::vec::Vec<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeReviewTarget::review_scope: radroots_event::knowledge::RadrootsKnowledgeReviewScope -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeReviewTarget -pub fn radroots_event::knowledge::RadrootsKnowledgeReviewTarget::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsKnowledgeSource pub radroots_event::knowledge::RadrootsKnowledgeSource::artifact_refs: alloc::vec::Vec<radroots_event::tag::RadrootsEventRef> pub radroots_event::knowledge::RadrootsKnowledgeSource::author_asserted_rights: core::option::Option<radroots_event::knowledge::RadrootsRightsAssertion> @@ -2381,15 +2245,11 @@ pub radroots_event::knowledge::RadrootsKnowledgeSource::source_type: alloc::stri pub radroots_event::knowledge::RadrootsKnowledgeSource::summary: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsKnowledgeSource::title: alloc::string::String pub radroots_event::knowledge::RadrootsKnowledgeSource::topics: alloc::vec::Vec<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsKnowledgeSource -pub fn radroots_event::knowledge::RadrootsKnowledgeSource::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsRightsAssertion pub radroots_event::knowledge::RadrootsRightsAssertion::assertion: alloc::string::String pub radroots_event::knowledge::RadrootsRightsAssertion::holder: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsRightsAssertion::license: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsRightsAssertion::url: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsRightsAssertion -pub fn radroots_event::knowledge::RadrootsRightsAssertion::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsWikiArticle pub radroots_event::knowledge::RadrootsWikiArticle::content_djot: alloc::string::String pub radroots_event::knowledge::RadrootsWikiArticle::d_tag: alloc::string::String @@ -2399,26 +2259,18 @@ pub radroots_event::knowledge::RadrootsWikiArticle::references: alloc::vec::Vec< pub radroots_event::knowledge::RadrootsWikiArticle::summary: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsWikiArticle::title: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsWikiArticle::topics: alloc::vec::Vec<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsWikiArticle -pub fn radroots_event::knowledge::RadrootsWikiArticle::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsWikiArticleVersionRef pub radroots_event::knowledge::RadrootsWikiArticleVersionRef::address_ref: radroots_event::knowledge::RadrootsAddressableRef pub radroots_event::knowledge::RadrootsWikiArticleVersionRef::event_id: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsWikiArticleVersionRef -pub fn radroots_event::knowledge::RadrootsWikiArticleVersionRef::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsWikiMergeRequest pub radroots_event::knowledge::RadrootsWikiMergeRequest::base_version_event_id: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsWikiMergeRequest::destination_pubkey: alloc::string::String pub radroots_event::knowledge::RadrootsWikiMergeRequest::explanation: core::option::Option<alloc::string::String> pub radroots_event::knowledge::RadrootsWikiMergeRequest::source_version_event_id: alloc::string::String pub radroots_event::knowledge::RadrootsWikiMergeRequest::target_article: radroots_event::knowledge::RadrootsAddressableRef -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsWikiMergeRequest -pub fn radroots_event::knowledge::RadrootsWikiMergeRequest::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::knowledge::RadrootsWikiRedirect pub radroots_event::knowledge::RadrootsWikiRedirect::d_tag: alloc::string::String pub radroots_event::knowledge::RadrootsWikiRedirect::target: radroots_event::knowledge::RadrootsAddressableRef -impl dto_bindgen_core::descriptor::Dto for radroots_event::knowledge::RadrootsWikiRedirect -pub fn radroots_event::knowledge::RadrootsWikiRedirect::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub const radroots_event::knowledge::RADROOTS_CONTRIBUTION_ATTESTATION_SCHEMA: &str pub const radroots_event::knowledge::RADROOTS_EVIDENCE_BOUNTY_SCHEMA: &str pub const radroots_event::knowledge::RADROOTS_KNOWLEDGE_CHANGE_PROPOSAL_SCHEMA: &str @@ -2465,16 +2317,12 @@ pub radroots_event::listing::operational::RadrootsOperationalListingAvailability pub radroots_event::listing::operational::RadrootsOperationalListingAvailability::Window pub radroots_event::listing::operational::RadrootsOperationalListingAvailability::Window::end: core::option::Option<u64> pub radroots_event::listing::operational::RadrootsOperationalListingAvailability::Window::start: core::option::Option<u64> -impl dto_bindgen_core::descriptor::Dto for radroots_event::listing::operational::RadrootsOperationalListingAvailability -pub fn radroots_event::listing::operational::RadrootsOperationalListingAvailability::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::listing::operational::RadrootsOperationalListingDeliveryMethod pub radroots_event::listing::operational::RadrootsOperationalListingDeliveryMethod::LocalDelivery pub radroots_event::listing::operational::RadrootsOperationalListingDeliveryMethod::Other pub radroots_event::listing::operational::RadrootsOperationalListingDeliveryMethod::Other::method: alloc::string::String pub radroots_event::listing::operational::RadrootsOperationalListingDeliveryMethod::Pickup pub radroots_event::listing::operational::RadrootsOperationalListingDeliveryMethod::Shipping -impl dto_bindgen_core::descriptor::Dto for radroots_event::listing::operational::RadrootsOperationalListingDeliveryMethod -pub fn radroots_event::listing::operational::RadrootsOperationalListingDeliveryMethod::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::listing::operational::RadrootsOperationalListingParseError pub radroots_event::listing::operational::RadrootsOperationalListingParseError::InvalidCurrency pub radroots_event::listing::operational::RadrootsOperationalListingParseError::InvalidDiscount(alloc::string::String) @@ -2487,15 +2335,11 @@ pub radroots_event::listing::operational::RadrootsOperationalListingParseError:: impl core::error::Error for radroots_event::listing::operational::RadrootsOperationalListingParseError impl core::fmt::Display for radroots_event::listing::operational::RadrootsOperationalListingParseError pub fn radroots_event::listing::operational::RadrootsOperationalListingParseError::fmt(&self, &mut core::fmt::Formatter<'_>) -> core::fmt::Result -impl dto_bindgen_core::descriptor::Dto for radroots_event::listing::operational::RadrootsOperationalListingParseError -pub fn radroots_event::listing::operational::RadrootsOperationalListingParseError::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::listing::operational::RadrootsOperationalListingStatus pub radroots_event::listing::operational::RadrootsOperationalListingStatus::Active pub radroots_event::listing::operational::RadrootsOperationalListingStatus::Other pub radroots_event::listing::operational::RadrootsOperationalListingStatus::Other::value: alloc::string::String pub radroots_event::listing::operational::RadrootsOperationalListingStatus::Sold -impl dto_bindgen_core::descriptor::Dto for radroots_event::listing::operational::RadrootsOperationalListingStatus -pub fn radroots_event::listing::operational::RadrootsOperationalListingStatus::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::listing::operational::RadrootsOperationalListing pub radroots_event::listing::operational::RadrootsOperationalListing::availability: core::option::Option<radroots_event::listing::operational::RadrootsOperationalListingAvailability> pub radroots_event::listing::operational::RadrootsOperationalListing::bins: alloc::vec::Vec<radroots_event::listing::operational::RadrootsOperationalListingBin> @@ -2511,8 +2355,6 @@ pub radroots_event::listing::operational::RadrootsOperationalListing::primary_bi pub radroots_event::listing::operational::RadrootsOperationalListing::product: radroots_event::listing::operational::RadrootsOperationalListingProduct pub radroots_event::listing::operational::RadrootsOperationalListing::published_at: core::option::Option<u64> pub radroots_event::listing::operational::RadrootsOperationalListing::resource_area: core::option::Option<radroots_event::farm::resource_area::RadrootsResourceAreaRef> -impl dto_bindgen_core::descriptor::Dto for radroots_event::listing::operational::RadrootsOperationalListing -pub fn radroots_event::listing::operational::RadrootsOperationalListing::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::listing::operational::RadrootsOperationalListingBin pub radroots_event::listing::operational::RadrootsOperationalListingBin::bin_id: radroots_event::id::RadrootsInventoryBinId pub radroots_event::listing::operational::RadrootsOperationalListingBin::display_amount: core::option::Option<radroots_core::decimal::Decimal> @@ -2522,18 +2364,12 @@ pub radroots_event::listing::operational::RadrootsOperationalListingBin::display pub radroots_event::listing::operational::RadrootsOperationalListingBin::display_unit: core::option::Option<radroots_core::unit::Unit> pub radroots_event::listing::operational::RadrootsOperationalListingBin::price_per_canonical_unit: radroots_core::quantity_price::QuantityPrice pub radroots_event::listing::operational::RadrootsOperationalListingBin::quantity: radroots_core::quantity::Quantity -impl dto_bindgen_core::descriptor::Dto for radroots_event::listing::operational::RadrootsOperationalListingBin -pub fn radroots_event::listing::operational::RadrootsOperationalListingBin::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::listing::operational::RadrootsOperationalListingImage pub radroots_event::listing::operational::RadrootsOperationalListingImage::size: core::option::Option<radroots_event::listing::operational::RadrootsOperationalListingImageSize> pub radroots_event::listing::operational::RadrootsOperationalListingImage::url: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::listing::operational::RadrootsOperationalListingImage -pub fn radroots_event::listing::operational::RadrootsOperationalListingImage::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::listing::operational::RadrootsOperationalListingImageSize pub radroots_event::listing::operational::RadrootsOperationalListingImageSize::h: u32 pub radroots_event::listing::operational::RadrootsOperationalListingImageSize::w: u32 -impl dto_bindgen_core::descriptor::Dto for radroots_event::listing::operational::RadrootsOperationalListingImageSize -pub fn radroots_event::listing::operational::RadrootsOperationalListingImageSize::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::listing::operational::RadrootsOperationalListingProduct pub radroots_event::listing::operational::RadrootsOperationalListingProduct::category: alloc::string::String pub radroots_event::listing::operational::RadrootsOperationalListingProduct::key: alloc::string::String @@ -2544,8 +2380,6 @@ pub radroots_event::listing::operational::RadrootsOperationalListingProduct::pro pub radroots_event::listing::operational::RadrootsOperationalListingProduct::summary: core::option::Option<alloc::string::String> pub radroots_event::listing::operational::RadrootsOperationalListingProduct::title: alloc::string::String pub radroots_event::listing::operational::RadrootsOperationalListingProduct::year: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::listing::operational::RadrootsOperationalListingProduct -pub fn radroots_event::listing::operational::RadrootsOperationalListingProduct::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::listing::operational::RadrootsOperationalListingProductTagKeys pub struct radroots_event::listing::operational::RadrootsOperationalListingPublicLocation pub radroots_event::listing::operational::RadrootsOperationalListingPublicLocation::city: core::option::Option<alloc::string::String> @@ -2553,8 +2387,6 @@ pub radroots_event::listing::operational::RadrootsOperationalListingPublicLocati pub radroots_event::listing::operational::RadrootsOperationalListingPublicLocation::geohash: alloc::string::String pub radroots_event::listing::operational::RadrootsOperationalListingPublicLocation::primary: alloc::string::String pub radroots_event::listing::operational::RadrootsOperationalListingPublicLocation::region: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::listing::operational::RadrootsOperationalListingPublicLocation -pub fn radroots_event::listing::operational::RadrootsOperationalListingPublicLocation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub const radroots_event::listing::operational::RADROOTS_OPERATIONAL_LISTING_PRODUCT_TAG_KEYS: [&str; 9] pub mod radroots_event::media pub mod radroots_event::media::file_metadata @@ -2783,19 +2615,13 @@ pub radroots_event::post::document::RadrootsDocument::summary: core::option::Opt pub radroots_event::post::document::RadrootsDocument::tags: core::option::Option<alloc::vec::Vec<alloc::string::String>> pub radroots_event::post::document::RadrootsDocument::title: alloc::string::String pub radroots_event::post::document::RadrootsDocument::version: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::post::document::RadrootsDocument -pub fn radroots_event::post::document::RadrootsDocument::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::post::document::RadrootsDocumentSubject pub radroots_event::post::document::RadrootsDocumentSubject::address: core::option::Option<alloc::string::String> pub radroots_event::post::document::RadrootsDocumentSubject::pubkey: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::post::document::RadrootsDocumentSubject -pub fn radroots_event::post::document::RadrootsDocumentSubject::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::post::reaction pub struct radroots_event::post::reaction::RadrootsReaction pub radroots_event::post::reaction::RadrootsReaction::content: alloc::string::String pub radroots_event::post::reaction::RadrootsReaction::target: radroots_event::social::RadrootsSocialTarget -impl dto_bindgen_core::descriptor::Dto for radroots_event::post::reaction::RadrootsReaction -pub fn radroots_event::post::reaction::RadrootsReaction::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::post::reply #[non_exhaustive] pub enum radroots_event::post::reply::RadrootsNip10ReplyError pub radroots_event::post::reply::RadrootsNip10ReplyError::AuthorInvalid(radroots_event::id::RadrootsIdParseError) @@ -2917,8 +2743,6 @@ pub radroots_event::post::RadrootsPost::location: core::option::Option<radroots_ pub radroots_event::post::RadrootsPost::media: core::option::Option<alloc::vec::Vec<radroots_event::social::RadrootsSocialMediaMetadata>> pub radroots_event::post::RadrootsPost::quote_refs: core::option::Option<alloc::vec::Vec<radroots_event::social::RadrootsSocialTarget>> pub radroots_event::post::RadrootsPost::topics: core::option::Option<alloc::vec::Vec<alloc::string::String>> -impl dto_bindgen_core::descriptor::Dto for radroots_event::post::RadrootsPost -pub fn radroots_event::post::RadrootsPost::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::post::RadrootsPostImageDimensions impl radroots_event::post::RadrootsPostImageDimensions pub const fn radroots_event::post::RadrootsPostImageDimensions::height(self) -> u32 @@ -2940,8 +2764,6 @@ pub struct radroots_event::profile::account::RadrootsAccountClaim pub radroots_event::profile::account::RadrootsAccountClaim::nip05: core::option::Option<alloc::string::String> pub radroots_event::profile::account::RadrootsAccountClaim::pubkey: alloc::string::String pub radroots_event::profile::account::RadrootsAccountClaim::username: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::profile::account::RadrootsAccountClaim -pub fn radroots_event::profile::account::RadrootsAccountClaim::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub const radroots_event::profile::account::KIND_ACCOUNT_CLAIM: u32 #[non_exhaustive] pub enum radroots_event::profile::RadrootsAuthoredProfileError pub radroots_event::profile::RadrootsAuthoredProfileError::InvalidName @@ -2966,8 +2788,6 @@ pub radroots_event::profile::RadrootsProfileType::Coop pub radroots_event::profile::RadrootsProfileType::Farm pub radroots_event::profile::RadrootsProfileType::Individual pub radroots_event::profile::RadrootsProfileType::Radrootsd -impl dto_bindgen_core::descriptor::Dto for radroots_event::profile::RadrootsProfileType -pub fn radroots_event::profile::RadrootsProfileType::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::profile::RadrootsAuthoredProfile impl radroots_event::profile::RadrootsAuthoredProfile pub fn radroots_event::profile::RadrootsAuthoredProfile::about(&self) -> core::option::Option<&str> @@ -3020,41 +2840,29 @@ pub mod radroots_event::social::app_data pub struct radroots_event::social::app_data::RadrootsAppData pub radroots_event::social::app_data::RadrootsAppData::content: alloc::string::String pub radroots_event::social::app_data::RadrootsAppData::d_tag: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::app_data::RadrootsAppData -pub fn radroots_event::social::app_data::RadrootsAppData::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub const radroots_event::social::app_data::KIND_APP_DATA: u32 pub mod radroots_event::social::follow pub struct radroots_event::social::follow::RadrootsFollow pub radroots_event::social::follow::RadrootsFollow::list: alloc::vec::Vec<radroots_event::social::follow::RadrootsFollowProfile> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::follow::RadrootsFollow -pub fn radroots_event::social::follow::RadrootsFollow::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::follow::RadrootsFollowProfile pub radroots_event::social::follow::RadrootsFollowProfile::contact_name: core::option::Option<alloc::string::String> pub radroots_event::social::follow::RadrootsFollowProfile::public_key: alloc::string::String pub radroots_event::social::follow::RadrootsFollowProfile::published_at: u64 pub radroots_event::social::follow::RadrootsFollowProfile::relay_url: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::follow::RadrootsFollowProfile -pub fn radroots_event::social::follow::RadrootsFollowProfile::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::geochat pub struct radroots_event::social::geochat::RadrootsGeoChat pub radroots_event::social::geochat::RadrootsGeoChat::content: alloc::string::String pub radroots_event::social::geochat::RadrootsGeoChat::geohash: alloc::string::String pub radroots_event::social::geochat::RadrootsGeoChat::nickname: core::option::Option<alloc::string::String> pub radroots_event::social::geochat::RadrootsGeoChat::teleported: bool -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::geochat::RadrootsGeoChat -pub fn radroots_event::social::geochat::RadrootsGeoChat::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::gift_wrap pub struct radroots_event::social::gift_wrap::RadrootsGiftWrap pub radroots_event::social::gift_wrap::RadrootsGiftWrap::content: alloc::string::String pub radroots_event::social::gift_wrap::RadrootsGiftWrap::expiration: core::option::Option<u32> pub radroots_event::social::gift_wrap::RadrootsGiftWrap::recipient: radroots_event::social::gift_wrap::RadrootsGiftWrapRecipient -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::gift_wrap::RadrootsGiftWrap -pub fn radroots_event::social::gift_wrap::RadrootsGiftWrap::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::gift_wrap::RadrootsGiftWrapRecipient pub radroots_event::social::gift_wrap::RadrootsGiftWrapRecipient::public_key: alloc::string::String pub radroots_event::social::gift_wrap::RadrootsGiftWrapRecipient::relay_url: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::gift_wrap::RadrootsGiftWrapRecipient -pub fn radroots_event::social::gift_wrap::RadrootsGiftWrapRecipient::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::group pub struct radroots_event::social::group::RadrootsGroupAdmins pub radroots_event::social::group::RadrootsGroupAdmins::admins: alloc::vec::Vec<radroots_event::social::group::RadrootsGroupUserRef> @@ -3148,20 +2956,14 @@ pub radroots_event::social::job::JobFeedbackStatus::Partial pub radroots_event::social::job::JobFeedbackStatus::PaymentRequired pub radroots_event::social::job::JobFeedbackStatus::Processing pub radroots_event::social::job::JobFeedbackStatus::Success -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::job::JobFeedbackStatus -pub fn radroots_event::social::job::JobFeedbackStatus::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::social::job::JobInputType pub radroots_event::social::job::JobInputType::Event pub radroots_event::social::job::JobInputType::Job pub radroots_event::social::job::JobInputType::Text pub radroots_event::social::job::JobInputType::Url -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::job::JobInputType -pub fn radroots_event::social::job::JobInputType::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::job::JobPaymentRequest pub radroots_event::social::job::JobPaymentRequest::amount_sat: u32 pub radroots_event::social::job::JobPaymentRequest::bolt11: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::job::JobPaymentRequest -pub fn radroots_event::social::job::JobPaymentRequest::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::job_feedback pub struct radroots_event::social::job_feedback::RadrootsJobFeedback pub radroots_event::social::job_feedback::RadrootsJobFeedback::content: core::option::Option<alloc::string::String> @@ -3172,21 +2974,15 @@ pub radroots_event::social::job_feedback::RadrootsJobFeedback::kind: u16 pub radroots_event::social::job_feedback::RadrootsJobFeedback::payment: core::option::Option<radroots_event::social::job::JobPaymentRequest> pub radroots_event::social::job_feedback::RadrootsJobFeedback::request_event: radroots_event::tag::RadrootsEventPtr pub radroots_event::social::job_feedback::RadrootsJobFeedback::status: radroots_event::social::job::JobFeedbackStatus -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::job_feedback::RadrootsJobFeedback -pub fn radroots_event::social::job_feedback::RadrootsJobFeedback::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::job_request pub struct radroots_event::social::job_request::RadrootsJobInput pub radroots_event::social::job_request::RadrootsJobInput::data: alloc::string::String pub radroots_event::social::job_request::RadrootsJobInput::input_type: radroots_event::social::job::JobInputType pub radroots_event::social::job_request::RadrootsJobInput::marker: core::option::Option<alloc::string::String> pub radroots_event::social::job_request::RadrootsJobInput::relay: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::job_request::RadrootsJobInput -pub fn radroots_event::social::job_request::RadrootsJobInput::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::job_request::RadrootsJobParam pub radroots_event::social::job_request::RadrootsJobParam::key: alloc::string::String pub radroots_event::social::job_request::RadrootsJobParam::value: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::job_request::RadrootsJobParam -pub fn radroots_event::social::job_request::RadrootsJobParam::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::job_request::RadrootsJobRequest pub radroots_event::social::job_request::RadrootsJobRequest::bid_sat: core::option::Option<u32> pub radroots_event::social::job_request::RadrootsJobRequest::encrypted: bool @@ -3197,8 +2993,6 @@ pub radroots_event::social::job_request::RadrootsJobRequest::params: alloc::vec: pub radroots_event::social::job_request::RadrootsJobRequest::providers: alloc::vec::Vec<alloc::string::String> pub radroots_event::social::job_request::RadrootsJobRequest::relays: alloc::vec::Vec<alloc::string::String> pub radroots_event::social::job_request::RadrootsJobRequest::topics: alloc::vec::Vec<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::job_request::RadrootsJobRequest -pub fn radroots_event::social::job_request::RadrootsJobRequest::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::job_result pub struct radroots_event::social::job_result::RadrootsJobResult pub radroots_event::social::job_result::RadrootsJobResult::content: core::option::Option<alloc::string::String> @@ -3209,19 +3003,13 @@ pub radroots_event::social::job_result::RadrootsJobResult::kind: u16 pub radroots_event::social::job_result::RadrootsJobResult::payment: core::option::Option<radroots_event::social::job::JobPaymentRequest> pub radroots_event::social::job_result::RadrootsJobResult::request_event: radroots_event::tag::RadrootsEventPtr pub radroots_event::social::job_result::RadrootsJobResult::request_json: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::job_result::RadrootsJobResult -pub fn radroots_event::social::job_result::RadrootsJobResult::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::list pub struct radroots_event::social::list::RadrootsList pub radroots_event::social::list::RadrootsList::content: alloc::string::String pub radroots_event::social::list::RadrootsList::entries: alloc::vec::Vec<radroots_event::social::list::RadrootsListEntry> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::list::RadrootsList -pub fn radroots_event::social::list::RadrootsList::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::list::RadrootsListEntry pub radroots_event::social::list::RadrootsListEntry::tag: alloc::string::String pub radroots_event::social::list::RadrootsListEntry::values: alloc::vec::Vec<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::list::RadrootsListEntry -pub fn radroots_event::social::list::RadrootsListEntry::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::list_set pub struct radroots_event::social::list_set::RadrootsListSet pub radroots_event::social::list_set::RadrootsListSet::content: alloc::string::String @@ -3230,21 +3018,15 @@ pub radroots_event::social::list_set::RadrootsListSet::description: core::option pub radroots_event::social::list_set::RadrootsListSet::entries: alloc::vec::Vec<radroots_event::social::list::RadrootsListEntry> pub radroots_event::social::list_set::RadrootsListSet::image: core::option::Option<alloc::string::String> pub radroots_event::social::list_set::RadrootsListSet::title: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::list_set::RadrootsListSet -pub fn radroots_event::social::list_set::RadrootsListSet::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::message pub struct radroots_event::social::message::RadrootsMessage pub radroots_event::social::message::RadrootsMessage::content: alloc::string::String pub radroots_event::social::message::RadrootsMessage::recipients: alloc::vec::Vec<radroots_event::social::message::RadrootsMessageRecipient> pub radroots_event::social::message::RadrootsMessage::reply_to: core::option::Option<radroots_event::tag::RadrootsEventPtr> pub radroots_event::social::message::RadrootsMessage::subject: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::message::RadrootsMessage -pub fn radroots_event::social::message::RadrootsMessage::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::message::RadrootsMessageRecipient pub radroots_event::social::message::RadrootsMessageRecipient::public_key: alloc::string::String pub radroots_event::social::message::RadrootsMessageRecipient::relay_url: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::message::RadrootsMessageRecipient -pub fn radroots_event::social::message::RadrootsMessageRecipient::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::message_file pub struct radroots_event::social::message_file::RadrootsMessageFile pub radroots_event::social::message_file::RadrootsMessageFile::blurhash: core::option::Option<alloc::string::String> @@ -3262,13 +3044,9 @@ pub radroots_event::social::message_file::RadrootsMessageFile::reply_to: core::o pub radroots_event::social::message_file::RadrootsMessageFile::size: core::option::Option<u64> pub radroots_event::social::message_file::RadrootsMessageFile::subject: core::option::Option<alloc::string::String> pub radroots_event::social::message_file::RadrootsMessageFile::thumb: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::message_file::RadrootsMessageFile -pub fn radroots_event::social::message_file::RadrootsMessageFile::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::message_file::RadrootsMessageFileDimensions pub radroots_event::social::message_file::RadrootsMessageFileDimensions::h: u32 pub radroots_event::social::message_file::RadrootsMessageFileDimensions::w: u32 -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::message_file::RadrootsMessageFileDimensions -pub fn radroots_event::social::message_file::RadrootsMessageFileDimensions::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::relay_auth pub struct radroots_event::social::relay_auth::RadrootsRelayAuth pub radroots_event::social::relay_auth::RadrootsRelayAuth::challenge: alloc::string::String @@ -3283,13 +3061,9 @@ pub radroots_event::social::relay_document::RadrootsRelayDocument::pubkey: core: pub radroots_event::social::relay_document::RadrootsRelayDocument::software: core::option::Option<alloc::string::String> pub radroots_event::social::relay_document::RadrootsRelayDocument::supported_nips: core::option::Option<alloc::vec::Vec<u16>> pub radroots_event::social::relay_document::RadrootsRelayDocument::version: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::relay_document::RadrootsRelayDocument -pub fn radroots_event::social::relay_document::RadrootsRelayDocument::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::social::seal pub struct radroots_event::social::seal::RadrootsSeal pub radroots_event::social::seal::RadrootsSeal::content: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::seal::RadrootsSeal -pub fn radroots_event::social::seal::RadrootsSeal::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::social::RadrootsReportType pub radroots_event::social::RadrootsReportType::Illegal pub radroots_event::social::RadrootsReportType::Impersonation @@ -3313,8 +3087,6 @@ pub radroots_event::social::RadrootsSocialTarget::External pub radroots_event::social::RadrootsSocialTarget::External::external_kind: alloc::string::String pub radroots_event::social::RadrootsSocialTarget::External::hint: core::option::Option<alloc::string::String> pub radroots_event::social::RadrootsSocialTarget::External::id: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::RadrootsSocialTarget -pub fn radroots_event::social::RadrootsSocialTarget::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::RadrootsReportFileTarget pub radroots_event::social::RadrootsReportFileTarget::magnet: core::option::Option<alloc::string::String> pub radroots_event::social::RadrootsReportFileTarget::sha256: core::option::Option<alloc::string::String> @@ -3326,18 +3098,12 @@ pub radroots_event::social::RadrootsReportTarget::reported_pubkey: alloc::string pub struct radroots_event::social::RadrootsSocialFarmAnchor pub radroots_event::social::RadrootsSocialFarmAnchor::farm: radroots_event::farm::RadrootsFarmRef pub radroots_event::social::RadrootsSocialFarmAnchor::relays: core::option::Option<alloc::vec::Vec<alloc::string::String>> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::RadrootsSocialFarmAnchor -pub fn radroots_event::social::RadrootsSocialFarmAnchor::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::RadrootsSocialLocation pub radroots_event::social::RadrootsSocialLocation::geohash: core::option::Option<alloc::string::String> pub radroots_event::social::RadrootsSocialLocation::name: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::RadrootsSocialLocation -pub fn radroots_event::social::RadrootsSocialLocation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::RadrootsSocialMediaDimensions pub radroots_event::social::RadrootsSocialMediaDimensions::height: u32 pub radroots_event::social::RadrootsSocialMediaDimensions::width: u32 -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::RadrootsSocialMediaDimensions -pub fn radroots_event::social::RadrootsSocialMediaDimensions::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::RadrootsSocialMediaMetadata pub radroots_event::social::RadrootsSocialMediaMetadata::alt: core::option::Option<alloc::string::String> pub radroots_event::social::RadrootsSocialMediaMetadata::blurhash: core::option::Option<alloc::string::String> @@ -3355,13 +3121,9 @@ pub radroots_event::social::RadrootsSocialMediaMetadata::size: core::option::Opt pub radroots_event::social::RadrootsSocialMediaMetadata::summary: core::option::Option<alloc::string::String> pub radroots_event::social::RadrootsSocialMediaMetadata::thumbnails: core::option::Option<alloc::vec::Vec<radroots_event::social::RadrootsSocialMediaThumbnail>> pub radroots_event::social::RadrootsSocialMediaMetadata::url: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::RadrootsSocialMediaMetadata -pub fn radroots_event::social::RadrootsSocialMediaMetadata::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::social::RadrootsSocialMediaThumbnail pub radroots_event::social::RadrootsSocialMediaThumbnail::dimensions: core::option::Option<radroots_event::social::RadrootsSocialMediaDimensions> pub radroots_event::social::RadrootsSocialMediaThumbnail::url: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::social::RadrootsSocialMediaThumbnail -pub fn radroots_event::social::RadrootsSocialMediaThumbnail::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::tag pub mod radroots_event::tag::name pub const radroots_event::tag::name::TAG_A: &str @@ -3445,22 +3207,16 @@ pub fn radroots_event::tag::relay_hint::RadrootsNostrRelayHint::from_str(&str) - pub struct radroots_event::tag::RadrootsEventPtr pub radroots_event::tag::RadrootsEventPtr::id: alloc::string::String pub radroots_event::tag::RadrootsEventPtr::relays: core::option::Option<alloc::string::String> -impl dto_bindgen_core::descriptor::Dto for radroots_event::tag::RadrootsEventPtr -pub fn radroots_event::tag::RadrootsEventPtr::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::tag::RadrootsEventRef pub radroots_event::tag::RadrootsEventRef::author: radroots_identity::key::PublicKey pub radroots_event::tag::RadrootsEventRef::d_tag: core::option::Option<alloc::string::String> pub radroots_event::tag::RadrootsEventRef::id: alloc::string::String pub radroots_event::tag::RadrootsEventRef::kind: u32 pub radroots_event::tag::RadrootsEventRef::relays: core::option::Option<alloc::vec::Vec<alloc::string::String>> -impl dto_bindgen_core::descriptor::Dto for radroots_event::tag::RadrootsEventRef -pub fn radroots_event::tag::RadrootsEventRef::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::trade pub mod radroots_event::trade::order pub enum radroots_event::trade::order::RadrootsCommercialDomain pub radroots_event::trade::order::RadrootsCommercialDomain::Listing -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsCommercialDomain -pub fn radroots_event::trade::order::RadrootsCommercialDomain::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::trade::order::RadrootsOrderDecisionOutcome pub radroots_event::trade::order::RadrootsOrderDecisionOutcome::Accepted pub radroots_event::trade::order::RadrootsOrderDecisionOutcome::Accepted::inventory_commitments: alloc::vec::Vec<radroots_event::trade::order::RadrootsOrderInventoryCommitment> @@ -3468,24 +3224,16 @@ pub radroots_event::trade::order::RadrootsOrderDecisionOutcome::Declined pub radroots_event::trade::order::RadrootsOrderDecisionOutcome::Declined::reason: alloc::string::String impl radroots_event::trade::order::RadrootsOrderDecisionOutcome pub fn radroots_event::trade::order::RadrootsOrderDecisionOutcome::validate(&self) -> core::result::Result<(), radroots_event::trade::order::RadrootsOrderPayloadError> -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderDecisionOutcome -pub fn radroots_event::trade::order::RadrootsOrderDecisionOutcome::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::trade::order::RadrootsOrderEconomicActor pub radroots_event::trade::order::RadrootsOrderEconomicActor::Buyer pub radroots_event::trade::order::RadrootsOrderEconomicActor::Seller -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicActor -pub fn radroots_event::trade::order::RadrootsOrderEconomicActor::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::trade::order::RadrootsOrderEconomicEffect pub radroots_event::trade::order::RadrootsOrderEconomicEffect::Decrease pub radroots_event::trade::order::RadrootsOrderEconomicEffect::Increase -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicEffect -pub fn radroots_event::trade::order::RadrootsOrderEconomicEffect::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::trade::order::RadrootsOrderEconomicLineKind pub radroots_event::trade::order::RadrootsOrderEconomicLineKind::BasketAdjustment pub radroots_event::trade::order::RadrootsOrderEconomicLineKind::ListingDiscount pub radroots_event::trade::order::RadrootsOrderEconomicLineKind::RevisionAdjustment -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicLineKind -pub fn radroots_event::trade::order::RadrootsOrderEconomicLineKind::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::trade::order::RadrootsOrderEnvelopeError pub radroots_event::trade::order::RadrootsOrderEnvelopeError::InvalidVersion pub radroots_event::trade::order::RadrootsOrderEnvelopeError::InvalidVersion::expected: u16 @@ -3505,8 +3253,6 @@ pub const fn radroots_event::trade::order::RadrootsOrderEventType::kind(self) -> pub const fn radroots_event::trade::order::RadrootsOrderEventType::name(self) -> &'static str pub const fn radroots_event::trade::order::RadrootsOrderEventType::requires_listing_snapshot(self) -> bool pub const fn radroots_event::trade::order::RadrootsOrderEventType::requires_order_chain(self) -> bool -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEventType -pub fn radroots_event::trade::order::RadrootsOrderEventType::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::trade::order::RadrootsOrderPayloadError pub radroots_event::trade::order::RadrootsOrderPayloadError::EmptyField(&'static str) pub radroots_event::trade::order::RadrootsOrderPayloadError::InvalidEconomicCurrency @@ -3547,8 +3293,6 @@ impl core::fmt::Display for radroots_event::trade::order::RadrootsOrderPayloadEr pub fn radroots_event::trade::order::RadrootsOrderPayloadError::fmt(&self, &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub enum radroots_event::trade::order::RadrootsOrderPricingBasis pub radroots_event::trade::order::RadrootsOrderPricingBasis::ListingEvent -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderPricingBasis -pub fn radroots_event::trade::order::RadrootsOrderPricingBasis::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order::RadrootsOrderCancellation pub radroots_event::trade::order::RadrootsOrderCancellation::buyer_pubkey: radroots_identity::key::PublicKey pub radroots_event::trade::order::RadrootsOrderCancellation::listing_addr: radroots_event::id::RadrootsClassifiedListingAddress @@ -3557,8 +3301,6 @@ pub radroots_event::trade::order::RadrootsOrderCancellation::reason: alloc::stri pub radroots_event::trade::order::RadrootsOrderCancellation::seller_pubkey: radroots_identity::key::PublicKey impl radroots_event::trade::order::RadrootsOrderCancellation pub fn radroots_event::trade::order::RadrootsOrderCancellation::validate(&self) -> core::result::Result<(), radroots_event::trade::order::RadrootsOrderPayloadError> -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderCancellation -pub fn radroots_event::trade::order::RadrootsOrderCancellation::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order::RadrootsOrderDecision pub radroots_event::trade::order::RadrootsOrderDecision::buyer_pubkey: radroots_identity::key::PublicKey pub radroots_event::trade::order::RadrootsOrderDecision::decision: radroots_event::trade::order::RadrootsOrderDecisionOutcome @@ -3567,8 +3309,6 @@ pub radroots_event::trade::order::RadrootsOrderDecision::order_id: radroots_even pub radroots_event::trade::order::RadrootsOrderDecision::seller_pubkey: radroots_identity::key::PublicKey impl radroots_event::trade::order::RadrootsOrderDecision pub fn radroots_event::trade::order::RadrootsOrderDecision::validate(&self) -> core::result::Result<(), radroots_event::trade::order::RadrootsOrderPayloadError> -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderDecision -pub fn radroots_event::trade::order::RadrootsOrderDecision::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order::RadrootsOrderEconomicItem pub radroots_event::trade::order::RadrootsOrderEconomicItem::bin_count: u32 pub radroots_event::trade::order::RadrootsOrderEconomicItem::bin_id: radroots_event::id::RadrootsInventoryBinId @@ -3577,8 +3317,6 @@ pub radroots_event::trade::order::RadrootsOrderEconomicItem::quantity_amount: ra pub radroots_event::trade::order::RadrootsOrderEconomicItem::quantity_unit: radroots_core::unit::Unit pub radroots_event::trade::order::RadrootsOrderEconomicItem::unit_price_amount: radroots_core::decimal::Decimal pub radroots_event::trade::order::RadrootsOrderEconomicItem::unit_price_currency: radroots_core::currency::Currency -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicItem -pub fn radroots_event::trade::order::RadrootsOrderEconomicItem::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order::RadrootsOrderEconomicLine pub radroots_event::trade::order::RadrootsOrderEconomicLine::actor: radroots_event::trade::order::RadrootsOrderEconomicActor pub radroots_event::trade::order::RadrootsOrderEconomicLine::amount: radroots_core::money::Money @@ -3586,15 +3324,11 @@ pub radroots_event::trade::order::RadrootsOrderEconomicLine::effect: radroots_ev pub radroots_event::trade::order::RadrootsOrderEconomicLine::id: alloc::string::String pub radroots_event::trade::order::RadrootsOrderEconomicLine::kind: radroots_event::trade::order::RadrootsOrderEconomicLineKind pub radroots_event::trade::order::RadrootsOrderEconomicLine::reason: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicLine -pub fn radroots_event::trade::order::RadrootsOrderEconomicLine::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order::RadrootsOrderEconomicTotals pub radroots_event::trade::order::RadrootsOrderEconomicTotals::adjustment_total: radroots_core::money::Money pub radroots_event::trade::order::RadrootsOrderEconomicTotals::discount_total: radroots_core::money::Money pub radroots_event::trade::order::RadrootsOrderEconomicTotals::subtotal: radroots_core::money::Money pub radroots_event::trade::order::RadrootsOrderEconomicTotals::total: radroots_core::money::Money -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicTotals -pub fn radroots_event::trade::order::RadrootsOrderEconomicTotals::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order::RadrootsOrderEconomics pub radroots_event::trade::order::RadrootsOrderEconomics::adjustment_total: radroots_core::money::Money pub radroots_event::trade::order::RadrootsOrderEconomics::adjustments: alloc::vec::Vec<radroots_event::trade::order::RadrootsOrderEconomicLine> @@ -3612,8 +3346,6 @@ pub fn radroots_event::trade::order::RadrootsOrderEconomics::canonicalize(&mut s pub fn radroots_event::trade::order::RadrootsOrderEconomics::canonicalized(&self) -> Self pub fn radroots_event::trade::order::RadrootsOrderEconomics::derived_totals(&self) -> core::result::Result<radroots_event::trade::order::RadrootsOrderEconomicTotals, radroots_event::trade::order::RadrootsOrderPayloadError> pub fn radroots_event::trade::order::RadrootsOrderEconomics::validate(&self) -> core::result::Result<(), radroots_event::trade::order::RadrootsOrderPayloadError> -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomics -pub fn radroots_event::trade::order::RadrootsOrderEconomics::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order::RadrootsOrderEnvelope<T> pub radroots_event::trade::order::RadrootsOrderEnvelope::domain: radroots_event::trade::order::RadrootsCommercialDomain pub radroots_event::trade::order::RadrootsOrderEnvelope::listing_addr: alloc::string::String @@ -3627,13 +3359,9 @@ pub fn radroots_event::trade::order::RadrootsOrderEnvelope<T>::validate(&self) - pub struct radroots_event::trade::order::RadrootsOrderInventoryCommitment pub radroots_event::trade::order::RadrootsOrderInventoryCommitment::bin_count: u32 pub radroots_event::trade::order::RadrootsOrderInventoryCommitment::bin_id: radroots_event::id::RadrootsInventoryBinId -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderInventoryCommitment -pub fn radroots_event::trade::order::RadrootsOrderInventoryCommitment::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order::RadrootsOrderItem pub radroots_event::trade::order::RadrootsOrderItem::bin_count: u32 pub radroots_event::trade::order::RadrootsOrderItem::bin_id: radroots_event::id::RadrootsInventoryBinId -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderItem -pub fn radroots_event::trade::order::RadrootsOrderItem::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order::RadrootsOrderRequest pub radroots_event::trade::order::RadrootsOrderRequest::buyer_pubkey: radroots_identity::key::PublicKey pub radroots_event::trade::order::RadrootsOrderRequest::economics: radroots_event::trade::order::RadrootsOrderEconomics @@ -3643,31 +3371,21 @@ pub radroots_event::trade::order::RadrootsOrderRequest::order_id: radroots_event pub radroots_event::trade::order::RadrootsOrderRequest::seller_pubkey: radroots_identity::key::PublicKey impl radroots_event::trade::order::RadrootsOrderRequest pub fn radroots_event::trade::order::RadrootsOrderRequest::validate(&self) -> core::result::Result<(), radroots_event::trade::order::RadrootsOrderPayloadError> -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderRequest -pub fn radroots_event::trade::order::RadrootsOrderRequest::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub const radroots_event::trade::order::RADROOTS_COMMERCIAL_LISTING_DOMAIN: &str pub const radroots_event::trade::order::RADROOTS_ORDER_ENVELOPE_VERSION: u16 pub mod radroots_event::trade::order_economics pub enum radroots_event::trade::order_economics::RadrootsOrderEconomicActor pub radroots_event::trade::order_economics::RadrootsOrderEconomicActor::Buyer pub radroots_event::trade::order_economics::RadrootsOrderEconomicActor::Seller -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicActor -pub fn radroots_event::trade::order::RadrootsOrderEconomicActor::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::trade::order_economics::RadrootsOrderEconomicEffect pub radroots_event::trade::order_economics::RadrootsOrderEconomicEffect::Decrease pub radroots_event::trade::order_economics::RadrootsOrderEconomicEffect::Increase -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicEffect -pub fn radroots_event::trade::order::RadrootsOrderEconomicEffect::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::trade::order_economics::RadrootsOrderEconomicLineKind pub radroots_event::trade::order_economics::RadrootsOrderEconomicLineKind::BasketAdjustment pub radroots_event::trade::order_economics::RadrootsOrderEconomicLineKind::ListingDiscount pub radroots_event::trade::order_economics::RadrootsOrderEconomicLineKind::RevisionAdjustment -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicLineKind -pub fn radroots_event::trade::order::RadrootsOrderEconomicLineKind::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::trade::order_economics::RadrootsOrderPricingBasis pub radroots_event::trade::order_economics::RadrootsOrderPricingBasis::ListingEvent -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderPricingBasis -pub fn radroots_event::trade::order::RadrootsOrderPricingBasis::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order_economics::RadrootsOrderEconomicItem pub radroots_event::trade::order_economics::RadrootsOrderEconomicItem::bin_count: u32 pub radroots_event::trade::order_economics::RadrootsOrderEconomicItem::bin_id: radroots_event::id::RadrootsInventoryBinId @@ -3676,8 +3394,6 @@ pub radroots_event::trade::order_economics::RadrootsOrderEconomicItem::quantity_ pub radroots_event::trade::order_economics::RadrootsOrderEconomicItem::quantity_unit: radroots_core::unit::Unit pub radroots_event::trade::order_economics::RadrootsOrderEconomicItem::unit_price_amount: radroots_core::decimal::Decimal pub radroots_event::trade::order_economics::RadrootsOrderEconomicItem::unit_price_currency: radroots_core::currency::Currency -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicItem -pub fn radroots_event::trade::order::RadrootsOrderEconomicItem::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order_economics::RadrootsOrderEconomicLine pub radroots_event::trade::order_economics::RadrootsOrderEconomicLine::actor: radroots_event::trade::order::RadrootsOrderEconomicActor pub radroots_event::trade::order_economics::RadrootsOrderEconomicLine::amount: radroots_core::money::Money @@ -3685,15 +3401,11 @@ pub radroots_event::trade::order_economics::RadrootsOrderEconomicLine::effect: r pub radroots_event::trade::order_economics::RadrootsOrderEconomicLine::id: alloc::string::String pub radroots_event::trade::order_economics::RadrootsOrderEconomicLine::kind: radroots_event::trade::order::RadrootsOrderEconomicLineKind pub radroots_event::trade::order_economics::RadrootsOrderEconomicLine::reason: alloc::string::String -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicLine -pub fn radroots_event::trade::order::RadrootsOrderEconomicLine::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order_economics::RadrootsOrderEconomicTotals pub radroots_event::trade::order_economics::RadrootsOrderEconomicTotals::adjustment_total: radroots_core::money::Money pub radroots_event::trade::order_economics::RadrootsOrderEconomicTotals::discount_total: radroots_core::money::Money pub radroots_event::trade::order_economics::RadrootsOrderEconomicTotals::subtotal: radroots_core::money::Money pub radroots_event::trade::order_economics::RadrootsOrderEconomicTotals::total: radroots_core::money::Money -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomicTotals -pub fn radroots_event::trade::order::RadrootsOrderEconomicTotals::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order_economics::RadrootsOrderEconomics pub radroots_event::trade::order_economics::RadrootsOrderEconomics::adjustment_total: radroots_core::money::Money pub radroots_event::trade::order_economics::RadrootsOrderEconomics::adjustments: alloc::vec::Vec<radroots_event::trade::order::RadrootsOrderEconomicLine> @@ -3711,13 +3423,9 @@ pub fn radroots_event::trade::order::RadrootsOrderEconomics::canonicalize(&mut s pub fn radroots_event::trade::order::RadrootsOrderEconomics::canonicalized(&self) -> Self pub fn radroots_event::trade::order::RadrootsOrderEconomics::derived_totals(&self) -> core::result::Result<radroots_event::trade::order::RadrootsOrderEconomicTotals, radroots_event::trade::order::RadrootsOrderPayloadError> pub fn radroots_event::trade::order::RadrootsOrderEconomics::validate(&self) -> core::result::Result<(), radroots_event::trade::order::RadrootsOrderPayloadError> -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderEconomics -pub fn radroots_event::trade::order::RadrootsOrderEconomics::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::trade::order_economics::RadrootsOrderItem pub radroots_event::trade::order_economics::RadrootsOrderItem::bin_count: u32 pub radroots_event::trade::order_economics::RadrootsOrderItem::bin_id: radroots_event::id::RadrootsInventoryBinId -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::order::RadrootsOrderItem -pub fn radroots_event::trade::order::RadrootsOrderItem::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub mod radroots_event::trade::validation pub enum radroots_event::trade::validation::RadrootsOperationalListingValidationError pub radroots_event::trade::validation::RadrootsOperationalListingValidationError::InvalidBin @@ -3752,8 +3460,6 @@ pub radroots_event::trade::validation::RadrootsOperationalListingValidationError impl core::error::Error for radroots_event::trade::validation::RadrootsOperationalListingValidationError impl core::fmt::Display for radroots_event::trade::validation::RadrootsOperationalListingValidationError pub fn radroots_event::trade::validation::RadrootsOperationalListingValidationError::fmt(&self, &mut core::fmt::Formatter<'_>) -> core::fmt::Result -impl dto_bindgen_core::descriptor::Dto for radroots_event::trade::validation::RadrootsOperationalListingValidationError -pub fn radroots_event::trade::validation::RadrootsOperationalListingValidationError::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub enum radroots_event::trade::RadrootsTradeDecisionV1 pub radroots_event::trade::RadrootsTradeDecisionV1::Accepted pub radroots_event::trade::RadrootsTradeDecisionV1::Accepted::reservation_assertion: core::option::Option<radroots_event::trade::RadrootsSellerReservationAssertionV1> @@ -3861,8 +3567,6 @@ pub fn radroots_event::id::RadrootsTradeCandidateId::fmt(&self, &mut core::fmt:: impl core::str::traits::FromStr for radroots_event::id::RadrootsTradeCandidateId pub type radroots_event::id::RadrootsTradeCandidateId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsTradeCandidateId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsTradeCandidateId -pub fn radroots_event::id::RadrootsTradeCandidateId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsTradeCandidateId pub fn radroots_event::id::RadrootsTradeCandidateId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsTradeCandidateId @@ -3892,8 +3596,6 @@ pub fn radroots_event::id::RadrootsTradeMutationId::fmt(&self, &mut core::fmt::F impl core::str::traits::FromStr for radroots_event::id::RadrootsTradeMutationId pub type radroots_event::id::RadrootsTradeMutationId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsTradeMutationId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsTradeMutationId -pub fn radroots_event::id::RadrootsTradeMutationId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsTradeMutationId pub fn radroots_event::id::RadrootsTradeMutationId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsTradeMutationId @@ -4047,8 +3749,6 @@ pub fn radroots_event::id::RadrootsTradeId::fmt(&self, &mut core::fmt::Formatter impl core::str::traits::FromStr for radroots_event::id::RadrootsTradeId pub type radroots_event::id::RadrootsTradeId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsTradeId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsTradeId -pub fn radroots_event::id::RadrootsTradeId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsTradeId pub fn radroots_event::id::RadrootsTradeId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsTradeId @@ -4082,7 +3782,6 @@ pub radroots_event::Error::IdMismatch::actual: radroots_event::id::RadrootsEvent pub radroots_event::Error::IdMismatch::expected: radroots_event::id::RadrootsEventId pub radroots_event::Error::MalformedEnvelope pub radroots_event::Error::SignatureInvalid -pub radroots_event::Error::SignatureVerificationUnavailable impl radroots_event::Error pub const fn radroots_event::Error::code(&self) -> &'static str impl core::error::Error for radroots_event::Error @@ -4107,8 +3806,6 @@ pub fn radroots_event::envelope::RadrootsEventEnvelope::tag_slices(&self) -> &[r pub fn radroots_event::envelope::RadrootsEventEnvelope::tags(&self) -> &radroots_event::envelope::RadrootsEventTags pub fn radroots_event::envelope::RadrootsEventEnvelope::tags_as_vec(&self) -> alloc::vec::Vec<alloc::vec::Vec<alloc::string::String>> pub fn radroots_event::envelope::RadrootsEventEnvelope::to_nip01_wire(&self) -> RadrootsNip01EventWire -impl dto_bindgen_core::descriptor::Dto for radroots_event::envelope::RadrootsEventEnvelope -pub fn radroots_event::envelope::RadrootsEventEnvelope::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef pub struct radroots_event::EventDraft impl radroots_event::draft::RadrootsEventDraft pub fn radroots_event::draft::RadrootsEventDraft::content(&self) -> &str @@ -4153,8 +3850,6 @@ pub fn radroots_event::id::RadrootsEventId::fmt(&self, &mut core::fmt::Formatter impl core::str::traits::FromStr for radroots_event::id::RadrootsEventId pub type radroots_event::id::RadrootsEventId::Err = radroots_event::id::RadrootsIdParseError pub fn radroots_event::id::RadrootsEventId::from_str(&str) -> core::result::Result<Self, Self::Err> -impl dto_bindgen_core::descriptor::Dto for radroots_event::id::RadrootsEventId -pub fn radroots_event::id::RadrootsEventId::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::id::RadrootsEventId pub fn radroots_event::id::RadrootsEventId::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::id::RadrootsEventId @@ -4166,8 +3861,6 @@ pub const fn radroots_event::envelope::RadrootsEventKind::class(self) -> radroot pub const fn radroots_event::envelope::RadrootsEventKind::new(u32) -> Self impl core::convert::From<u32> for radroots_event::envelope::RadrootsEventKind pub fn radroots_event::envelope::RadrootsEventKind::from(u32) -> Self -impl dto_bindgen_core::descriptor::Dto for radroots_event::envelope::RadrootsEventKind -pub fn radroots_event::envelope::RadrootsEventKind::describe(&mut dto_bindgen_core::descriptor::DescribeCtx) -> dto_bindgen_core::types::TypeRef impl serde_core::ser::Serialize for radroots_event::envelope::RadrootsEventKind pub fn radroots_event::envelope::RadrootsEventKind::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer impl<'de> serde_core::de::Deserialize<'de> for radroots_event::envelope::RadrootsEventKind @@ -4199,7 +3892,6 @@ pub fn radroots_event::draft::RadrootsSignedEvent::sig(&self) -> &radroots_event pub fn radroots_event::draft::RadrootsSignedEvent::sig_str(&self) -> &str pub fn radroots_event::draft::RadrootsSignedEvent::signature_hex(&self) -> alloc::string::String pub fn radroots_event::draft::RadrootsSignedEvent::tags_as_vec(&self) -> alloc::vec::Vec<alloc::vec::Vec<alloc::string::String>> -pub fn radroots_event::draft::RadrootsSignedEvent::verify_signature(self) -> core::result::Result<radroots_event::draft::RadrootsVerifiedSignedEvent, radroots_event::draft::RadrootsSignatureVerificationError> pub fn radroots_event::draft::RadrootsSignedEvent::wire(&self) -> &RadrootsNip01EventWire impl serde_core::ser::Serialize for radroots_event::draft::RadrootsSignedEvent pub fn radroots_event::draft::RadrootsSignedEvent::serialize<S>(&self, S) -> core::result::Result<<S as serde_core::ser::Serializer>::Ok, <S as serde_core::ser::Serializer>::Error> where S: serde_core::ser::Serializer