use crate::*;

impl ToOutput for String {
    fn to_output(&self, output: &mut impl Output) {
        self.as_str().to_output(output);
    }
}

impl<I: ParseInput> Parse<I> for String {
    fn parse(input: I) -> crate::Result<Self> {
        Ok(Self::from_utf8(input.parse()?)?)
    }
}

impl Tagged for String {}
impl ListHashes for String {}
impl Topological for String {}
impl MaybeHasNiche for String {
    type MnArray = NoNiche<NicheForUnsized>;
}

impl ByteOrd for String {
    fn bytes_cmp(&self, other: &Self) -> Ordering {
        self.cmp(other)
    }
}
