Radish alpha
r
rad:z6cFWeWpnZNHh9rUW8phgA3b5yGt
Git libraries for Radicle
Radicle
Git
trailers: add Token constructor
Fintan Halpenny committed 2 years ago
commit 956bf070d45538e3b68a2b39dc88c173341d2bad
parent 1501492
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,