lib/grammar/ast/test/boolean.rs
1use pest::iterators::Pair;
2use serde::Serialize;
3
4use crate::grammar::ast::literal::{Literal, LiteralTypes};
5use crate::grammar::parser::Rule;
6
7#[derive(Debug, Clone, Eq, PartialEq, Serialize)]
8#[serde(tag = "kind")]
9pub struct TestFalse {
10 value: LiteralTypes,
11}
12
13impl Default for TestFalse {
14 fn default() -> Self {
15 Self {
16 value: LiteralTypes::Boolean(true),
17 }
18 }
19}
20
21impl<'r> From<Pair<'r, Rule>> for TestFalse {
22 fn from(pair: Pair<'r, Rule>) -> Self {
23 let value = Literal::from(pair.into_inner().next().unwrap()).inner();
24 Self { value }
25 }
26}
27
28#[derive(Debug, Clone, Eq, PartialEq, Serialize)]
29#[serde(tag = "kind")]
30pub struct TestTrue {
31 value: LiteralTypes,
32}
33
34impl Default for TestTrue {
35 fn default() -> Self {
36 Self {
37 value: LiteralTypes::Boolean(true),
38 }
39 }
40}
41
42impl<'r> From<Pair<'r, Rule>> for TestTrue {
43 fn from(pair: Pair<'r, Rule>) -> Self {
44 let value = Literal::from(pair.into_inner().next().unwrap()).inner();
45 Self { value }
46 }
47}
48
49// impl Boolean<'_> for TestTrue {}
50
51// pub trait Alias: One + Two {}
52
53// impl<T> Alias for T where T: One + Two {}
54
55// impl<T: From> From for T {
56// fn my_extension(self) -> Self {
57// println!("Hey, it worked!");
58// self
59// }
60// }
61
62// pub trait Boolean<'r>: From<Pair<'r, Rule>>
63// where
64// // Self: From<Pair<'r, Rule>> + Sized,
65// Self: Sized,
66// {
67// // fn from(pair: Pair<'r, Rule>) -> Self {
68// // let value = Literal::from(pair.into_inner().next().unwrap()).inner();
69// // Self { value }
70// // }
71
72// // fn from(pair: Pair<'r, Rule>) -> Self {
73// // let value = Literal::from(pair.into_inner().next().unwrap()).inner();
74// // Self { value }
75// // }
76
77// fn summarize(&self) -> String {
78// String::from("(Read more...)")
79// }
80// }
81
82// pub trait Boolean<'r>: From<Pair<'r, Rule>> {
83// fn from(pair: Pair<'r, Rule>) -> Self {
84// let value = Literal::from(pair.into_inner().next().unwrap()).inner();
85// Self { value }
86// }
87
88// fn summarize(&self) -> String {
89// String::from("(Read more...)")
90// }
91// }