xkb_parser/ast/
xkb_geometry.rs

1use crate::{ast::*, xkb::Rule};
2use derivative::Derivative;
3use pest_ast::FromPest;
4
5#[derive(Derivative, FromPest, Clone, PartialEq)]
6#[derivative(Debug)]
7#[pest_ast(rule(Rule::xkb_geometry))]
8pub struct XkbGeometry<'src> {
9    pub name: StringContent<'src>,
10    pub values: Vec<Debug<'src>>,
11}
12
13#[derive(Derivative, FromPest, Clone, PartialEq)]
14#[derivative(Debug)]
15#[pest_ast(rule(Rule::xkb_geometry_item))]
16pub struct XkbGeometryItem<'src> {
17    #[pest_ast(outer(with(span_into_str)))]
18    pub debug: &'src str, // FIXME: actual content pls
19}
20
21#[derive(Derivative, FromPest, Clone, PartialEq)]
22#[derivative(Debug)]
23#[pest_ast(rule(Rule::geometry_assigment))]
24pub struct GeometryAssigment<'src> {
25    pub key: Ident<'src>,
26    pub subkey: Option<Ident<'src>>,
27    #[pest_ast(inner(with(span_into_str)))]
28    pub value: &'src str,
29}