Skip to content
Snippets Groups Projects

Resolve "TransactionDocument: replace Vec fields by SmallVec"

@@ -40,10 +40,10 @@ pub enum UserDocumentDUBP {
Transaction(Box<TransactionDocument>),
/// Identity document.
Identity(IdentityDocument),
Identity(Box<IdentityDocument>),
/// Membership document.
Membership(MembershipDocument),
Membership(Box<MembershipDocument>),
/// Certification document.
Certification(Box<CertificationDocument>),
@@ -135,11 +135,11 @@ impl UserDocumentDUBP {
let doc_type_v10_pair = unwrap!(pair.into_inner().next()); // get and unwrap the `{DOC_TYPE}_v10` rule; never fails
match doc_type_v10_pair.as_rule() {
Rule::idty_v10 => Ok(UserDocumentDUBP::Identity(IdentityDocument::V10(
Rule::idty_v10 => Ok(UserDocumentDUBP::Identity(Box::new(IdentityDocument::V10(
IdentityDocumentV10::from_pest_pair(doc_type_v10_pair)?,
))),
Rule::membership_v10 => Ok(UserDocumentDUBP::Membership(MembershipDocument::V10(
MembershipDocumentV10::from_pest_pair(doc_type_v10_pair)?,
)))),
Rule::membership_v10 => Ok(UserDocumentDUBP::Membership(Box::new(
MembershipDocument::V10(MembershipDocumentV10::from_pest_pair(doc_type_v10_pair)?),
))),
Rule::cert_v10 => Ok(UserDocumentDUBP::Certification(Box::new(
CertificationDocument::V10(CertificationDocumentV10::from_pest_pair(
@@ -163,6 +163,7 @@ mod tests {
use dubp_common_doc::parser::TextDocumentParser;
use dubp_common_doc::traits::Document;
use dubp_common_doc::Blockstamp;
use smallvec::{smallvec, SmallVec};
use dup_crypto::keys::*;
use durs_common_tools::UsizeSer32;
@@ -171,8 +172,8 @@ mod tests {
#[derive(Debug, Clone, PartialEq, Eq)]
struct PlainTextDocument {
pub text: &'static str,
pub issuers: Vec<PubKey>,
pub signatures: Vec<Sig>,
pub issuers: SmallVec<[PubKey; 4]>,
pub signatures: SmallVec<[Sig; 4]>,
}
impl Document for PlainTextDocument {
@@ -190,11 +191,11 @@ mod tests {
unimplemented!()
}
fn issuers(&self) -> &Vec<PubKey> {
fn issuers(&self) -> &SmallVec<[PubKey; 4]> {
&self.issuers
}
fn signatures(&self) -> &Vec<Sig> {
fn signatures(&self) -> &SmallVec<[Sig; 4]> {
&self.signatures
}
@@ -244,8 +245,8 @@ Timestamp: 0-E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
{
let doc = PlainTextDocument {
text,
issuers: vec![issuer1],
signatures: vec![sig1],
issuers: smallvec![issuer1],
signatures: smallvec![sig1],
};
if let Err(e) = doc.verify_signatures() {
@@ -256,8 +257,8 @@ Timestamp: 0-E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
{
let doc = PlainTextDocument {
text,
issuers: vec![issuer1],
signatures: vec![sig2],
issuers: smallvec![issuer1],
signatures: smallvec![sig2],
};
// todo: gérer l'erreur avec PartialEq
/*
@@ -272,8 +273,8 @@ Timestamp: 0-E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
{
let doc = PlainTextDocument {
text,
issuers: vec![issuer1, issuer2],
signatures: vec![sig1],
issuers: smallvec![issuer1, issuer2],
signatures: smallvec![sig1],
};
// todo: gérer l'erreur avec PartialEq
@@ -289,8 +290,8 @@ Timestamp: 0-E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
{
let doc = PlainTextDocument {
text,
issuers: vec![issuer1],
signatures: vec![sig1, sig2],
issuers: smallvec![issuer1],
signatures: smallvec![sig1, sig2],
};
// todo: gérer l'erreur avec PartialEq
Loading