Radish alpha
r
Git libraries for Radicle
Radicle
Git (anonymous pull)
Log in to clone via SSH
trailers: add Token constructor
Fintan Halpenny committed 3 years ago
commit 956bf070d45538e3b68a2b39dc88c173341d2bad
parent 15014923c7711279eaa922d13159655f11b5882f
1 file changed +13 -0
modified radicle-git-ext/src/commit/trailers.rs
@@ -130,6 +130,19 @@ impl Deref for Token<'_> {
    }
}

+
impl<'a> TryFrom<&'a str> for Token<'a> {
+
    type Error = &'static str;
+

+
    fn try_from(s: &'a str) -> Result<Self, Self::Error> {
+
        let is_token = s.chars().all(|c| c.is_alphanumeric() || c == '-');
+
        if is_token {
+
            Ok(Token(s))
+
        } else {
+
            Err("token contains invalid characters")
+
        }
+
    }
+
}
+

pub struct Display<'a> {
    trailer: &'a Trailer<'a>,
    separator: &'a str,