parseme/
lib.rs

1#![doc = include_str!("../README.md")]
2#![no_std]
3
4mod error;
5pub mod iter;
6pub mod parser;
7pub mod stream;
8
9pub use error::*;
10pub use parser::Parser;
11
12#[cfg(feature = "alloc")]
13mod source;
14#[cfg(not(feature = "alloc"))]
15#[path = "source_no_alloc.rs"]
16mod source;
17
18pub use source::*;
19
20pub mod xid {
21    //! Unicode XID support for Parseme.
22    pub use parseme_xid::*;
23}
24
25/// Convenience method to convert a function into a [Parser] implementation.
26///
27/// # Examples
28/// ```
29/// use parseme::Parser;
30///
31/// fn my_parser(input: &mut [u8]) -> Result<u8, ()> {
32///     Ok(*input.first_mut().unwrap())
33/// }
34///
35/// assert_eq!(parseme::new(my_parser).parse(&mut [42, 64]), Ok(42));
36/// ```
37#[inline]
38pub const fn new<In: ?Sized, Out, Err>(
39    parser: impl Parser<In, Out, Err>,
40) -> impl Parser<In, Out, Err> {
41    parser
42}