projects involving the gemini protocol
pub trait RequestType: private::Sealed {}

/// Marker for requests which may be any type.
#[derive(Debug, Copy, Clone)]
pub struct Any;

/// Marker for requests which are known to be valid Gemini URLs.
#[derive(Debug, Copy, Clone)]
pub struct Gemini;

mod private {
    pub trait Sealed {}

    impl Sealed for super::Any {}
    impl Sealed for super::Gemini {}
}

impl RequestType for Any {}
impl RequestType for Gemini {}