diff --git a/src/lib.rs b/src/lib.rs index fb5cf20..3381309 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -285,8 +285,8 @@ impl Chain { Self { certs } } - pub fn fixed_from(certs: Vec) -> Result { - let mut certs = certs.iter().collect::>(); + pub fn create_fixed(certs: &[Certificate]) -> Result { + let mut certs = certs.to_vec(); certs.sort_by(|cert1, cert2| { if cert1.subject_key_id() == cert2.authority_key_id() { Ordering::Greater @@ -294,7 +294,7 @@ impl Chain { Ordering::Less } }); - let chain = Chain::from(certs.iter().unique().map(|&c| c.clone()).collect::>()); + let chain = Chain::from(certs.iter().unique().cloned().collect::>()); if !chain.is_valid() { return Err("Cannot merge files to valid chain - giving up!".to_string()); } diff --git a/ui/src/main.rs b/ui/src/main.rs index 88f9b06..a634cbd 100644 --- a/ui/src/main.rs +++ b/ui/src/main.rs @@ -104,7 +104,7 @@ impl Ui { _ => None, }; self.fixed_chain = match &self.chain { - Some(chain) => match Chain::fixed_from(chain.certs().to_vec()) { + Some(chain) => match Chain::create_fixed(chain.certs()) { Ok(chain) => Some(chain), _ => None, }, @@ -130,7 +130,7 @@ impl Ui { _ => None, }; self.fixed_chain = match &self.chain { - Some(chain) => match Chain::fixed_from(chain.certs().to_vec()) { + Some(chain) => match Chain::create_fixed(chain.certs()) { Ok(chain) => Some(chain), _ => None, }, @@ -156,7 +156,7 @@ impl Ui { _ => None, }; self.fixed_chain = match &self.chain { - Some(chain) => match Chain::fixed_from(chain.certs().to_vec()) { + Some(chain) => match Chain::create_fixed(chain.certs()) { Ok(chain) => Some(chain), _ => None, },