chiark / gitweb /
apitest: Remove some Sized foolishness
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 21 May 2021 19:39:16 +0000 (20:39 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 21 May 2021 19:39:16 +0000 (20:39 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
apitest/apitest.rs

index e3d3be530dbe87c33f5dc708e1eb6b8b203d6e17..d0f30a3e95d9b3d39a1a436faf1063f05dfcd8b9 100644 (file)
@@ -131,34 +131,27 @@ pub trait Substitutor {
   }
 
   #[throws(AE)]
-  fn subst<S: AsRef<str>>(&self, s: S) -> String 
-  where Self: Sized {
-    #[throws(AE)]
-    fn inner(self_: &dyn Substitutor, s: &dyn AsRef<str>) -> 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: &regex::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: &regex::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<String> 
-  where Self: Sized {
+  fn ss(&self, s: &str) -> Vec<String> {
     self.subst(s)?
       .trim()
       .split(' ')