pub trait Extension: Display { type Value: ExtensionValue; fn parse(&self, input: &str) -> Result<Option<Self::Value>, Error>; }