meta_language/
configuration.rs1#[derive(Clone, Copy, Debug, PartialEq, Eq)]
3pub enum TriviaAttachmentPolicy {
4 ContainmentLink,
6 TokenLink,
8 Both,
10}
11
12#[derive(Clone, Copy, Debug, PartialEq, Eq)]
14pub enum RegionDetectionPolicy {
15 NameDriven,
17 ContentDriven,
19 Both,
21}
22
23#[derive(Clone, Copy, Debug, PartialEq, Eq)]
25pub struct ParseConfiguration {
26 trivia_attachment_policy: TriviaAttachmentPolicy,
27 region_detection_policy: RegionDetectionPolicy,
28}
29
30impl ParseConfiguration {
31 #[must_use]
33 pub const fn new(trivia_attachment_policy: TriviaAttachmentPolicy) -> Self {
34 Self {
35 trivia_attachment_policy,
36 region_detection_policy: RegionDetectionPolicy::Both,
37 }
38 }
39
40 #[must_use]
42 pub const fn with_region_detection_policy(
43 mut self,
44 region_detection_policy: RegionDetectionPolicy,
45 ) -> Self {
46 self.region_detection_policy = region_detection_policy;
47 self
48 }
49
50 #[must_use]
52 pub const fn trivia_attachment_policy(self) -> TriviaAttachmentPolicy {
53 self.trivia_attachment_policy
54 }
55
56 #[must_use]
58 pub const fn region_detection_policy(self) -> RegionDetectionPolicy {
59 self.region_detection_policy
60 }
61}
62
63impl Default for ParseConfiguration {
64 fn default() -> Self {
65 Self::new(TriviaAttachmentPolicy::Both)
66 }
67}