twitch_message 0.1.2

A parser for Twitch.tv chat messages
Documentation
use std::borrow::Cow;

use crate::{typed_messages::TypedMessageMarker, Parse, Tags};

#[track_caller]
pub fn parse_as<'a, T: TypedMessageMarker<'a>>(input: &'a str) -> T {
    crate::parse_as::<T>(input).unwrap()
}

#[track_caller]
pub fn raw(input: &str) -> Cow<'_, str> {
    Cow::from(&input[..input.len() - 2])
}

#[track_caller]
pub fn raw_and_tags(input: &str) -> (Cow<'_, str>, Tags<'_>) {
    let s = &mut &input[..input.find(' ').unwrap() + 1];
    (raw(input), Tags::parse(s).unwrap())
}