rfc1939/update/
command.rs1use crate::types::command::Quit;
2use nom::{
3 bytes::complete::{tag, tag_no_case},
4 combinator::map,
5 sequence::terminated,
6 IResult,
7};
8
9pub fn quit(s: &[u8]) -> Option<Quit> {
21 match quit_parser(s) {
22 Ok((_, x)) => Some(x),
23 Err(_) => None,
24 }
25}
26
27pub(crate) fn quit_parser(s: &[u8]) -> IResult<&[u8], Quit> {
28 map(terminated(tag_no_case(b"QUIT"), tag(b"\r\n")), |_| Quit)(s)
29}
30
31#[cfg(test)]
32mod tests {
33 use super::*;
34 #[test]
35 fn test_quit() {
36 assert_eq!(quit(b"QUIT\r\n").unwrap(), Quit);
37 }
38}