From: Ian Jackson Date: Fri, 21 May 2021 19:39:16 +0000 (+0100) Subject: apitest: Remove some Sized foolishness X-Git-Tag: otter-0.6.0~91 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=9803362a8ced28d89eb1d77e568e46e925528b68;p=otter.git apitest: Remove some Sized foolishness Signed-off-by: Ian Jackson --- diff --git a/apitest/apitest.rs b/apitest/apitest.rs index e3d3be53..d0f30a3e 100644 --- a/apitest/apitest.rs +++ b/apitest/apitest.rs @@ -131,34 +131,27 @@ pub trait Substitutor { } #[throws(AE)] - fn subst>(&self, s: S) -> String - where Self: Sized { - #[throws(AE)] - fn inner(self_: &dyn Substitutor, s: &dyn AsRef) -> String { - let s = s.as_ref(); - let re = Regex::new(r"@(\w+)@").expect("bad re!"); - let mut errs = vec![]; - let out = re.replace_all(s, |caps: ®ex::Captures| { - let kw = caps.get(1).expect("$1 missing!").as_str(); - if kw == "" { return "".to_owned() } - let v = self_.get(kw); - v.unwrap_or_else(||{ - errs.push(kw.to_owned()); - "".to_owned() - }) - }); - if ! errs.is_empty() { - throw!(anyhow!("bad substitution(s) {:?} in {:?}", - &errs, s)); - } - out.into() + fn subst(&self, s: &str) -> String { + let re = Regex::new(r"@(\w+)@").expect("bad re!"); + let mut errs = vec![]; + let out = re.replace_all(s, |caps: ®ex::Captures| { + let kw = caps.get(1).expect("$1 missing!").as_str(); + if kw == "" { return "".to_owned() } + let v = self.get(kw); + v.unwrap_or_else(||{ + errs.push(kw.to_owned()); + "".to_owned() + }) + }); + if ! errs.is_empty() { + throw!(anyhow!("bad substitution(s) {:?} in {:?}", + &errs, s)); } - inner(self, &s)? + out.into() } #[throws(AE)] - fn ss(&self, s: &str) -> Vec - where Self: Sized { + fn ss(&self, s: &str) -> Vec { self.subst(s)? .trim() .split(' ')