File tree Expand file tree Collapse file tree 4 files changed +35
-33
lines changed
rust/catalyst-signed-doc-macro/src Expand file tree Collapse file tree 4 files changed +35
-33
lines changed Original file line number Diff line number Diff line change 1+ //! Structs for JSON fields.
2+
3+ /// "required" field definition
4+ #[ derive( serde:: Deserialize ) ]
5+ #[ serde( rename_all = "lowercase" ) ]
6+ #[ allow( clippy:: missing_docs_in_private_items) ]
7+ pub ( crate ) enum IsRequired {
8+ Yes ,
9+ Excluded ,
10+ Optional ,
11+ }
12+
13+ /// Document's metadata fields definition
14+ #[ derive( serde:: Deserialize ) ]
15+ #[ allow( clippy:: missing_docs_in_private_items) ]
16+ pub ( crate ) struct MetadataNode {
17+ #[ serde( rename = "ref" ) ]
18+ pub ( crate ) content_type : ContentType ,
19+ }
20+
21+ /// `signed_doc.json` "ref" field JSON object
22+ #[ derive( serde:: Deserialize ) ]
23+ #[ allow( clippy:: missing_docs_in_private_items) ]
24+ pub ( crate ) struct ContentType {
25+ pub ( crate ) required : IsRequired ,
26+ pub ( crate ) value : Vec < String > ,
27+ }
Original file line number Diff line number Diff line change 33
44mod error;
55mod rules;
6+ mod field;
67mod signed_doc_spec;
78mod types_consts;
89
Original file line number Diff line number Diff line change 22use proc_macro2:: TokenStream ;
33use quote:: quote;
44
5- use crate :: signed_doc_spec :: { self , field:: IsRequired } ;
5+ use crate :: field;
66
77/// Generating `RefRule` instantiation
8- pub ( crate ) fn ref_rule ( ref_spec : & signed_doc_spec :: field:: ContentType ) -> anyhow:: Result < TokenStream > {
8+ pub ( crate ) fn ref_rule ( ref_spec : & field:: ContentType ) -> anyhow:: Result < TokenStream > {
99 let optional = match ref_spec. required {
10- IsRequired :: Yes => true ,
11- IsRequired :: Optional => false ,
12- IsRequired :: Excluded => {
10+ field :: IsRequired :: Yes => true ,
11+ field :: IsRequired :: Optional => false ,
12+ field :: IsRequired :: Excluded => {
1313 return Ok ( quote ! {
1414 crate :: validator:: rules:: RefRule :: NotSpecified
1515 } ) ;
Original file line number Diff line number Diff line change @@ -6,6 +6,8 @@ use anyhow::Context;
66use proc_macro2:: Ident ;
77use quote:: format_ident;
88
9+ use crate :: field;
10+
911/// Catalyst Signed Document spec representation struct
1012#[ derive( serde:: Deserialize ) ]
1113pub ( crate ) struct CatalystSignedDocSpec {
@@ -58,34 +60,6 @@ impl CatalystSignedDocSpec {
5860 }
5961}
6062
61- pub ( crate ) mod field {
62- /// "required" field definition
63- #[ derive( serde:: Deserialize ) ]
64- #[ serde( rename_all = "lowercase" ) ]
65- #[ allow( clippy:: missing_docs_in_private_items) ]
66- pub ( crate ) enum IsRequired {
67- Yes ,
68- Excluded ,
69- Optional ,
70- }
71-
72- /// Document's metadata fields definition
73- #[ derive( serde:: Deserialize ) ]
74- #[ allow( clippy:: missing_docs_in_private_items) ]
75- pub ( crate ) struct MetadataNode {
76- #[ serde( rename = "ref" ) ]
77- pub ( crate ) content_type : ContentType ,
78- }
79-
80- /// `signed_doc.json` "ref" field JSON object
81- #[ derive( serde:: Deserialize ) ]
82- #[ allow( clippy:: missing_docs_in_private_items) ]
83- pub ( crate ) struct ContentType {
84- pub ( crate ) required : IsRequired ,
85- pub ( crate ) value : Vec < String > ,
86- }
87- }
88-
8963#[ cfg( test) ]
9064mod tests {
9165 use super :: * ;
You can’t perform that action at this time.
0 commit comments