1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
//! Shared types used across the Ave workspace.
//!
//! `ave-common` keeps request, governance, bridge and utility types in one
//! crate with a small dependency surface. It is intended for code that needs
//! Ave domain models without depending on heavier runtime crates.
//!
//! Main areas:
//! - request types for ledger events
//! - governance payloads and policy models
//! - bridge types for API-facing serialization
//! - utility wrappers such as [`SchemaType`], [`Namespace`] and [`ValueWrapper`]
//!
//! Feature flags:
//! - `common`: enables the domain and bridge models
//! - `value-wrapper`: enables [`ValueWrapper`]
//! - `openapi`: derives `utoipa` schemas
//! - `typescript`: derives TypeScript exports
//!
//! ```rust
//! use ave_common::{Namespace, SchemaType};
//! use ave_common::identity::DigestIdentifier;
//! use ave_common::request::{CreateRequest, EventRequest};
//!
//! let request = EventRequest::Create(CreateRequest {
//! name: Some("subject".to_string()),
//! description: None,
//! governance_id: DigestIdentifier::default(),
//! schema_id: SchemaType::Governance,
//! namespace: Namespace::from("demo.root"),
//! });
//!
//! assert!(request.is_create_event());
//! ```
// Re-exports
pub use ave_identity as identity;
pub use *;
pub use ;
pub use SchemaType;
pub use Namespace;
pub use *;
pub use ValueWrapper;