use pest::iterators::Pair;
use serde::Serialize;
use crate::grammar::ast::literal::{Literal, LiteralTypes};
use crate::grammar::parser::Rule;
#[derive(Debug, Clone, Eq, PartialEq, Serialize)]
#[serde(tag = "kind")]
pub struct TestFalse {
value: LiteralTypes,
}
impl Default for TestFalse {
fn default() -> Self {
Self {
value: LiteralTypes::Boolean(true),
}
}
}
impl<'r> From<Pair<'r, Rule>> for TestFalse {
fn from(pair: Pair<'r, Rule>) -> Self {
let value = Literal::from(pair.into_inner().next().unwrap()).inner();
Self { value }
}
}
#[derive(Debug, Clone, Eq, PartialEq, Serialize)]
#[serde(tag = "kind")]
pub struct TestTrue {
value: LiteralTypes,
}
impl Default for TestTrue {
fn default() -> Self {
Self {
value: LiteralTypes::Boolean(true),
}
}
}
impl<'r> From<Pair<'r, Rule>> for TestTrue {
fn from(pair: Pair<'r, Rule>) -> Self {
let value = Literal::from(pair.into_inner().next().unwrap()).inner();
Self { value }
}
}