mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
remove Atom. almost there
This commit is contained in:
parent
dc7b713108
commit
cf1fd5b45a
20 changed files with 539 additions and 739 deletions
|
|
@ -1,22 +1,22 @@
|
|||
use crate::*;
|
||||
#[derive(Debug, Copy, Clone, Default)] pub enum Alignment { #[default] Center, X, Y, NW, N, NE, E, SE, S, SW, W }
|
||||
pub struct Align<A>(Alignment, A);
|
||||
try_from_atoms!(<'a, E>: Align<RenderBox<'a, E>>: |state, atoms| {
|
||||
let head = atoms.next()?;
|
||||
if head.kind() != TokenKind::Key { return None }
|
||||
match head.text() {
|
||||
"align/c" => return Some(Self::c(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
"align/x" => return Some(Self::x(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
"align/y" => return Some(Self::y(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
"align/n" => return Some(Self::n(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
"align/s" => return Some(Self::s(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
"align/e" => return Some(Self::e(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
"align/w" => return Some(Self::w(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
"align/nw" => return Some(Self::nw(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
"align/ne" => return Some(Self::ne(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
"align/sw" => return Some(Self::sw(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
"align/se" => return Some(Self::se(state.get_content(&atoms.next()?).expect("no content"))),
|
||||
_ => {}
|
||||
try_from_expr!(<'a, E>: Align<RenderBox<'a, E>>: |state, iter| {
|
||||
if let Some((Token { value: Value::Key(key), .. }, _)) = iter.next() {
|
||||
match key {
|
||||
"align/c" => return Some(Self::c(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
"align/x" => return Some(Self::x(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
"align/y" => return Some(Self::y(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
"align/n" => return Some(Self::n(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
"align/s" => return Some(Self::s(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
"align/e" => return Some(Self::e(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
"align/w" => return Some(Self::w(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
"align/nw" => return Some(Self::nw(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
"align/ne" => return Some(Self::ne(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
"align/sw" => return Some(Self::sw(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
"align/se" => return Some(Self::se(state.get_content(&iter.next()?.0.value).expect("no content"))),
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
});
|
||||
impl<A> Align<A> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue