From 7fa1e34c22f4c5bfa99925560be9c23bb2d6d670 Mon Sep 17 00:00:00 2001 From: John Turner Date: Thu, 20 Nov 2025 23:12:54 +0000 Subject: impl ascii alternatives to alphabetic, numeric and whitespace methods and parsers --- src/lib.rs | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index fe9a720..5d6c3d3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -965,6 +965,14 @@ where r#if(|c: &I::Item| c.is_alphabetic()) } +pub fn ascii_alpha() -> impl Parser +where + I: Input, + I::Item: Character, +{ + r#if(|c: &I::Item| c.is_ascii_alphabetic()) +} + pub fn alpha1() -> impl Parser where I: Input, @@ -976,6 +984,17 @@ where .recognize() } +pub fn ascii_alpha1() -> impl Parser +where + I: Input, + I::Item: Character, +{ + r#if(|c: &I::Item| c.is_ascii_alphabetic()) + .repeated() + .at_least(1) + .recognize() +} + pub fn numeric() -> impl Parser where I: Input, @@ -984,6 +1003,14 @@ where r#if(|c: &I::Item| c.is_numeric()) } +pub fn ascii_numeric() -> impl Parser +where + I: Input, + I::Item: Character, +{ + r#if(|c: &I::Item| c.is_ascii() && c.is_numeric()) +} + pub fn numeric1() -> impl Parser where I: Input, @@ -995,6 +1022,17 @@ where .recognize() } +pub fn ascii_numeric1() -> impl Parser +where + I: Input, + I::Item: Character, +{ + r#if(|c: &I::Item| c.is_ascii() && c.is_numeric()) + .repeated() + .at_least(1) + .recognize() +} + pub fn alphanumeric() -> impl Parser where I: Input, @@ -1003,6 +1041,14 @@ where r#if(|c: &I::Item| c.is_alphanumeric()) } +pub fn ascii_alphanumeric() -> impl Parser +where + I: Input, + I::Item: Character, +{ + r#if(|c: &I::Item| c.is_ascii_alphanumeric()) +} + pub fn alphanumeric1() -> impl Parser where I: Input, @@ -1014,6 +1060,17 @@ where .recognize() } +pub fn ascii_alphanumeric1() -> impl Parser +where + I: Input, + I::Item: Character, +{ + r#if(|c: &I::Item| c.is_ascii_alphanumeric()) + .repeated() + .at_least(1) + .recognize() +} + pub fn whitespace() -> impl Parser where I: Input, @@ -1022,6 +1079,14 @@ where r#if(|c: &I::Item| c.is_whitespace()) } +pub fn ascii_whitespace() -> impl Parser +where + I: Input, + I::Item: Character, +{ + r#if(|c: &I::Item| c.is_ascii_whitespace()) +} + pub fn whitespace1() -> impl Parser where I: Input, @@ -1033,6 +1098,17 @@ where .recognize() } +pub fn ascii_whitespace1() -> impl Parser +where + I: Input, + I::Item: Character, +{ + r#if(|c: &I::Item| c.is_ascii_whitespace()) + .repeated() + .at_least(1) + .recognize() +} + pub fn any() -> impl Parser where I: Input, -- cgit v1.2.3