sdp-rs 0.2.1

SDP Rust library, parser & generator of the Session Description Protocol
Documentation
use crate::TResult;

#[derive(Debug, PartialEq, Eq, Clone)]
pub struct Tokenizer<'a> {
    pub fmt: &'a str,
    pub params: &'a str,
}

impl<'a> Tokenizer<'a> {
    pub fn tokenize(part: &'a str) -> TResult<'a, Self> {
        use crate::parser_utils::*;

        let (params, fmt) = until_space(part)?;

        Ok(("", Tokenizer { fmt, params }))
    }
}

impl<'a> From<(&'a str, &'a str)> for Tokenizer<'a> {
    fn from((fmt, params): (&'a str, &'a str)) -> Self {
        Self { fmt, params }
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn tokenizer() {
        let rtpmap = "96 profile-level-id=42e016;max-mbps=108000;max-fs=3600";

        assert_eq!(
            Tokenizer::tokenize(rtpmap),
            Ok((
                "",
                Tokenizer {
                    fmt: "96",
                    params: "profile-level-id=42e016;max-mbps=108000;max-fs=3600",
                }
            )),
        );
    }
}