mirror of
https://codeberg.org/unspeaker/tengri.git
synced 2025-12-06 11:46:42 +01:00
0.10.0: fixed expose! syntax
This commit is contained in:
parent
6048d24880
commit
471959d1f5
3 changed files with 14 additions and 12 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.9.1"
|
version = "0.10.0"
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
|
||||||
|
|
@ -38,25 +38,25 @@ pub(crate) use std::fmt::Debug;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[macro_export] macro_rules! expose {
|
#[macro_export] macro_rules! expose {
|
||||||
($([$self:ident:$State:ty] { $($Type:ty => { $($pat:pat => $expr:expr),* $(,)? })* })*) => {
|
($([$self:ident:$State:ty] { $([$($Type:tt)*] => { $($pat:pat => $expr:expr),* $(,)? })* })*) => {
|
||||||
$(expose!(@impl [$self: $State] { $($Type => { $($pat => $expr),* })* });)*
|
$(expose!(@impl [$self: $State] { $([$($Type)*] => { $($pat => $expr),* })* });)*
|
||||||
};
|
};
|
||||||
(@impl [$self:ident:$State:ty] { $($Type:ty => { $($pat:pat => $expr:expr),* $(,)? })* }) => {
|
(@impl [$self:ident:$State:ty] { $([$($Type:tt)*] => { $($pat:pat => $expr:expr),* $(,)? })* }) => {
|
||||||
$(expose!(@type $Type [$self: $State] => { $($pat => $expr),* });)*
|
$(expose!(@type [$($Type)*] [$self: $State] => { $($pat => $expr),* });)*
|
||||||
};
|
};
|
||||||
(@type bool [$self:ident: $State:ty] => { $($pat:pat => $expr:expr),* $(,)? }) => {
|
(@type [bool] [$self:ident: $State:ty] => { $($pat:pat => $expr:expr),* $(,)? }) => {
|
||||||
provide_bool!(bool: |$self: $State| { $($pat => $expr),* });
|
provide_bool!(bool: |$self: $State| { $($pat => $expr),* });
|
||||||
};
|
};
|
||||||
(@type isize [$self:ident: $State:ty] => { $($pat:pat => $expr:expr),* $(,)? }) => {
|
(@type [u16] [$self:ident: $State:ty] => { $($pat:pat => $expr:expr),* $(,)? }) => {
|
||||||
provide_num!(u16: |$self: $State| { $($pat => $expr),* });
|
provide_num!(u16: |$self: $State| { $($pat => $expr),* });
|
||||||
};
|
};
|
||||||
(@type usize [$self:ident: $State:ty] => { $($pat:pat => $expr:expr),* $(,)? }) => {
|
(@type [usize] [$self:ident: $State:ty] => { $($pat:pat => $expr:expr),* $(,)? }) => {
|
||||||
provide_num!(usize: |$self: $State| { $($pat => $expr),* });
|
provide_num!(usize: |$self: $State| { $($pat => $expr),* });
|
||||||
};
|
};
|
||||||
(@type isize [$self:ident: $State:ty] => { $($pat:pat => $expr:expr),* $(,)? }) => {
|
(@type [isize] [$self:ident: $State:ty] => { $($pat:pat => $expr:expr),* $(,)? }) => {
|
||||||
provide_num!(isize: |$self: $State| { $($pat => $expr),* });
|
provide_num!(isize: |$self: $State| { $($pat => $expr),* });
|
||||||
};
|
};
|
||||||
(@type $Type:ty [$self:ident: $State:ty] => { $($pat:pat => $expr:expr),* $(,)? }) => {
|
(@type [$Type:ty] [$self:ident: $State:ty] => { $($pat:pat => $expr:expr),* $(,)? }) => {
|
||||||
provide!($Type: |$self: $State| { $($pat => $expr),* });
|
provide!($Type: |$self: $State| { $($pat => $expr),* });
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -85,8 +85,10 @@ macro_rules! transform_xy_unit {
|
||||||
if let Some(Token { value: Value::Key(k), .. }) = iter.peek() {
|
if let Some(Token { value: Value::Key(k), .. }) = iter.peek() {
|
||||||
if k == $x || k == $y {
|
if k == $x || k == $y {
|
||||||
let _ = iter.next().unwrap();
|
let _ = iter.next().unwrap();
|
||||||
let u = get_value!(state => iter.next().expect("no unit specified"));
|
let u = iter.next().expect("no unit specified");
|
||||||
let c = get_content!(state => iter.next().expect("no content specified"));
|
let u = get_value!(state => u);
|
||||||
|
let c = iter.next().expect("no content specified");
|
||||||
|
let c = get_content!(state => c);
|
||||||
return Some(match k {
|
return Some(match k {
|
||||||
$x => Self::x(u, c),
|
$x => Self::x(u, c),
|
||||||
$y => Self::y(u, c),
|
$y => Self::y(u, c),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue