pub struct Sanitizer;

Implementations§

§

impl Sanitizer

pub fn parse(string: &str) -> Result<(&str, &str), Err<VerboseError<&str>>>

Removes all leading whitespaces and comments from the given input, returning the sanitized input.

pub fn parse_whitespaces( string: &str ) -> Result<(&str, &str), Err<VerboseError<&str>>>

Removes leading whitespaces from the given input.

pub fn parse_comments( string: &str ) -> Result<(&str, &str), Err<VerboseError<&str>>>

Removes multiple leading comments from the given input.

pub fn parse_comment( string: &str ) -> Result<(&str, &str), Err<VerboseError<&str>>>

Removes the first leading comment from the given input.

pub fn parse_safe_char( string: &str ) -> Result<(&str, char), Err<VerboseError<&str>>>

Parse a safe character (in the sense explained in [string_parser::is_char_supported]). Returns an error if no character is found or a non-safe character is found. The character is returned, along with the remaining input.

This is used for otherwise unconstrained characters in (line and block) comments and in string literals.

Note also that the nom documentation for anychar says that it matches one byte as a character. However, simple experiments show that it matches a Unicode character, e.g. attempting to parse "\u{4141}" yields one CJK character and exhausts the input, as opposed to returning A and leaving another A in the input.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V