Skip to content

Commit edc55e3

Browse files
committed
wip
1 parent d1a6287 commit edc55e3

File tree

2 files changed

+37
-7
lines changed
  • rust
    • catalyst-signed-doc-macro/src/rules
    • signed_doc/src/validator

2 files changed

+37
-7
lines changed

rust/catalyst-signed-doc-macro/src/rules/mod.rs

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,45 @@ use crate::signed_doc_spec::CatalystSignedDocSpec;
77

88
/// `catalyst_signed_documents_rules` macro implementation
99
pub(crate) fn catalyst_signed_documents_rules_impl() -> anyhow::Result<TokenStream> {
10-
let _spec = CatalystSignedDocSpec::load_signed_doc_spec()?;
10+
let spec = CatalystSignedDocSpec::load_signed_doc_spec()?;
11+
12+
let mut rules_definitions = Vec::new();
13+
for (doc_name, _doc_spec) in spec.docs {
14+
let const_type_name_ident = doc_name.ident();
15+
16+
// TODO: impleemnt a proper initialisation for all specific validation rules
17+
let rules = quote! {
18+
crate::validator::rules::Rules {
19+
id: crate::validator::rules::IdRule,
20+
ver: crate::validator::rules::VerRule,
21+
content_type: crate::validator::rules::ContentTypeRule {
22+
exp: ContentType::Json,
23+
},
24+
content_encoding: crate::validator::rules::ContentEncodingRule {
25+
exp: ContentEncoding::Brotli,
26+
optional: false,
27+
},
28+
content: crate::validator::rules::ContentRule::NotSpecified,
29+
parameters: crate::validator::rules::ParametersRule::NotSpecified,
30+
doc_ref: crate::validator::rules::RefRule::NotSpecified,
31+
reply: crate::validator::rules::ReplyRule::NotSpecified,
32+
section: crate::validator::rules::SectionRule::NotSpecified,
33+
kid: crate::validator::rules::SignatureKidRule {
34+
exp: &[],
35+
},
36+
}
37+
};
38+
39+
let rule_defintion = quote! {
40+
(#const_type_name_ident, #rules),
41+
};
42+
rules_definitions.push(rule_defintion);
43+
}
1144

1245
Ok(quote! {
1346
/// Returns an iterator with all defined Catalyst Signed Documents validation rules per corresponding document type
14-
fn documents_rules() -> impl Iterator<Item = (DocType, Rules)> {
15-
[].into_iter()
47+
fn documents_rules() -> impl Iterator<Item = (crate::DocType, crate::validator::rules::Rules)> {
48+
[ #(#rules_definitions)* ].into_iter()
1649
}
1750
})
1851
}

rust/signed_doc/src/validator/mod.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,7 @@ use rules::{
1717
};
1818

1919
use crate::{
20-
doc_types::{
21-
BRAND_PARAMETERS, CAMPAIGN_PARAMETERS, CATEGORY_PARAMETERS, PROPOSAL, PROPOSAL_COMMENT,
22-
PROPOSAL_COMMENT_FORM_TEMPLATE, PROPOSAL_FORM_TEMPLATE, PROPOSAL_SUBMISSION_ACTION,
23-
},
20+
doc_types::*,
2421
metadata::DocType,
2522
providers::{CatalystSignedDocumentProvider, VerifyingKeyProvider},
2623
signature::{tbs_data, Signature},

0 commit comments

Comments
 (0)