1#[cfg(feature = "chumsky")]
4use chumsky::{Parser, prelude::just};
5
6#[derive(
8 Debug,
9 Clone,
10 Copy,
11 PartialEq,
12 Eq,
13 PartialOrd,
14 Ord,
15 strum::EnumIs,
16 serde::Serialize,
17 serde::Deserialize,
18)]
19pub enum Area {
20 ChatRange,
22 DrawDistance,
24 Region,
26}
27
28#[cfg(feature = "chumsky")]
34#[must_use]
35pub fn area_parser<'src>()
36-> impl Parser<'src, &'src str, Area, chumsky::extra::Err<chumsky::error::Rich<'src, char>>> {
37 just("chat range")
38 .to(Area::ChatRange)
39 .or(just("draw distance").to(Area::DrawDistance))
40 .or(just("region").to(Area::Region))
41 .or(just("the region").to(Area::Region))
42}