1use winnow::stream::AsChar;
2use winnow::stream::Compare;
3use winnow::stream::Stream;
4use winnow::stream::StreamIsPartial;
5use winnow::token::take_till;
6use winnow::PResult;
7use winnow::Parser;
8
9pub fn till_null<I>(input: &mut I) -> PResult<<I as Stream>::Slice>
10where
11 I: Stream + StreamIsPartial + Compare<char>,
12 <I as Stream>::Token: AsChar,
13 <I as Stream>::Token: AsChar,
14{
15 let ret = take_till(1.., '\0').parse_next(input)?;
16 let _ = '\0'.parse_next(input)?;
17 Ok(ret)
18}