33pub ( crate ) mod json_schema;
44pub ( crate ) mod rules;
55
6- use std:: {
7- collections:: HashMap ,
8- sync:: { Arc , LazyLock } ,
9- } ;
6+ use std:: { collections:: HashMap , sync:: LazyLock } ;
107
8+ use catalyst_signed_doc_macro;
119use catalyst_types:: catalyst_id:: role_index:: RoleId ;
1210use rules:: {
1311 ContentEncodingRule , ContentRule , ContentSchema , ContentTypeRule , IdRule , ParametersRule ,
@@ -25,8 +23,10 @@ use crate::{
2523 CatalystSignedDocument , ContentEncoding , ContentType ,
2624} ;
2725
26+ catalyst_signed_doc_macro:: catalyst_signed_documents_rules!( ) ;
27+
2828/// A table representing a full set or validation rules per document id.
29- static DOCUMENT_RULES : LazyLock < HashMap < DocType , Arc < Rules > > > = LazyLock :: new ( document_rules_init) ;
29+ static DOCUMENT_RULES : LazyLock < HashMap < DocType , Rules > > = LazyLock :: new ( document_rules_init) ;
3030
3131/// Proposal
3232/// Require field: type, id, ver, template, parameters
@@ -158,18 +158,16 @@ fn proposal_submission_action_rule() -> Rules {
158158}
159159
160160/// `DOCUMENT_RULES` initialization function
161- fn document_rules_init ( ) -> HashMap < DocType , Arc < Rules > > {
162- let mut document_rules_map = HashMap :: new ( ) ;
163-
164- let proposal_rules = Arc :: new ( proposal_rule ( ) ) ;
165- let comment_rules = Arc :: new ( proposal_comment_rule ( ) ) ;
166- let action_rules = Arc :: new ( proposal_submission_action_rule ( ) ) ;
161+ fn document_rules_init ( ) -> HashMap < DocType , Rules > {
162+ let mut document_rules_map: HashMap < DocType , Rules > = documents_rules ( ) . collect ( ) ;
167163
168- document_rules_map. insert ( PROPOSAL . clone ( ) , Arc :: clone ( & proposal_rules) ) ;
169- document_rules_map. insert ( PROPOSAL_COMMENT . clone ( ) , Arc :: clone ( & comment_rules) ) ;
164+ // TODO: remove this redefinitions of the validation rules after
165+ // `catalyst_signed_documents_rules!` macro would be fully finished
166+ document_rules_map. insert ( PROPOSAL . clone ( ) , proposal_rule ( ) ) ;
167+ document_rules_map. insert ( PROPOSAL_COMMENT . clone ( ) , proposal_comment_rule ( ) ) ;
170168 document_rules_map. insert (
171169 PROPOSAL_SUBMISSION_ACTION . clone ( ) ,
172- Arc :: clone ( & action_rules ) ,
170+ proposal_submission_action_rule ( ) ,
173171 ) ;
174172
175173 document_rules_map
0 commit comments