pub enum Rule {
Show 18 variants
WHITESPACE,
digit,
year,
month,
day,
date,
blockchain_name,
currency,
number,
number_and_currency,
entry,
name,
date_entry,
open,
close,
high,
low,
volume,
}Variants§
WHITESPACE
Matches whitespace characters including space, tab, and newline. This rule is used to ignore these characters in parsing, making the grammar more readable and flexible by disregarding non-essential spaces.
digit
Represents a single ASCII digit from 0 to 9. This rule allows us to match numeric characters in other rules where digits are required.
year
Matches a 4-digit year, e.g., “2024”. Used in date formats to specify the year component.
month
Matches a 2-digit month, e.g., “05” for May. Used in date formats to specify the month component.
day
Matches a 2-digit day, e.g., “12” for the 12th day of a month. Used in date formats to specify the day component.
date
Matches two date formats: “dd.mm.yyyy” or “mm/dd/yyyy”. Supports both European and American date formats for flexibility. Combines day, month, and year components separated by specific delimiters.
blockchain_name
Recognizes specific blockchain names: “SOL”, “BTC”, or “ETH”. This rule is used to identify and validate different blockchain types.
currency
Matches a specific set of currency codes: “USD”, “EUR”, or “UAH”. Used in financial fields to denote the currency associated with a numeric value.
number
Represents a formatted numeric value with optional commas for thousands separation and an optional decimal part. Examples include “1,000.50” or “200,200,200”. Allows flexibility in representing numeric data in financial contexts.
number_and_currency
Matches a number followed by a currency. Specifies the format for fields that require both a numeric amount and currency type.
entry
Defines the structure of an entire entry, combining all components in a specific format. An entry consists of name, date, open, close, high, low, and volume fields. Ensures consistency and proper format across all entries.
name
Matches a line that includes the blockchain name, formatted as “Name: <blockchain_name>;”. Ensures consistency in the format and captures the type of blockchain being referenced.
date_entry
, formatted as Matches a line containing the date“Date:
open
Matches the opening price line in the format “Open: <number_and_currency>;”. Specifies the format for the open price field in each entry.
close
Matches the closing price line in the format “Close: <number_and_currency>;”. Specifies the format for the close price field in each entry.
high
Matches the high price line in the format “High: <number_and_currency>;”. Specifies the format for the high price field in each entry.
low
Matches the low price line in the format “Low: <number_and_currency>;”. Specifies the format for the low price field in each entry.
volume
Matches the volume line in the format “Volume: <number_and_currency>;”. Specifies the format for the volume field, indicating the traded volume in a particular currency.
Implementations§
Trait Implementations§
Source§impl Ord for Rule
impl Ord for Rule
Source§impl Parser<Rule> for BlockchainParser
impl Parser<Rule> for BlockchainParser
Source§impl PartialOrd for Rule
impl PartialOrd for Rule
impl Copy for Rule
impl Eq for Rule
impl StructuralPartialEq for Rule
Auto Trait Implementations§
impl Freeze for Rule
impl RefUnwindSafe for Rule
impl Send for Rule
impl Sync for Rule
impl Unpin for Rule
impl UnwindSafe for Rule
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)