caracal 0.3.6

Nostr client for Gemini
use nostr::EventId;
pub use windmark_titanesque::context::RouteContext;

pub trait RouteGenie {
    fn draft_id(&self) -> Option<String>;
    fn event_id(&self) -> Option<EventId>;
    fn hashtag(&self) -> Option<String>;
}

impl RouteGenie for RouteContext {
    fn event_id(&self) -> Option<EventId> {
        self.parameters
            .get("event_id")
            .and_then(|id| EventId::parse(id).ok())
    }

    fn hashtag(&self) -> Option<String> {
        self.parameters.get("hashtag").map(str::to_string)
    }

    fn draft_id(&self) -> Option<String> {
        self.parameters.get("draft_id").map(str::to_string)
    }
}