From fb0ecffd74fd23a7a045632907ba5e90bed320d3 Mon Sep 17 00:00:00 2001 From: Marrub Date: Mon, 1 Apr 2019 04:28:01 -0400 Subject: [PATCH] hack to allow paths in type names --- source/durandal/bin.rs | 12 ++++++------ source/durandal/err.rs | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/source/durandal/bin.rs b/source/durandal/bin.rs index 153daff..619bd3e 100644 --- a/source/durandal/bin.rs +++ b/source/durandal/bin.rs @@ -68,16 +68,16 @@ macro_rules! rd_impl { let $nam = usize_from_u32($nam); }; ($e:ident, $b:expr, $at:expr, $n:expr; - $nam:ident, enum, $et:ident, $t:ident + $nam:ident, enum, $et:ident$(::$etc:ident)*, $t:ident ) => { $crate::rd_impl!($e, $b, $at, $n; $nam, $t); - let $nam = $et::try_from($nam)?; + let $nam = $et$(::$etc)*::try_from($nam)?; }; ($e:ident, $b:expr, $at:expr, $n:expr; - $nam:ident, flag, $ft:ident, $t:ident + $nam:ident, flag, $ft:ident$(::$ftc:ident)*, $t:ident ) => { $crate::rd_impl!($e, $b, $at, $n; $nam, $t); - let $nam = flag_ok!($ft, $nam)?; + let $nam = flag_ok!($ft$(::$ftc)*, $nam)?; }; // no endianness @@ -186,12 +186,12 @@ macro_rules! read_data { ( endian: $e:ident, buf: $b:expr, size: $sz:expr, start: $at:expr, data { $(let $nam:ident = $t:ident$(::$tc:ident)*[$n:expr $(; $rn:expr)?] - $($ex:ident)*;)* + $($ex:ident$(::$exc:ident)*)*;)* } ) => { $crate::check_data!($at + $sz, $b); $($crate::rd_impl!($e, $b, $at, $n; - $($rn;)? $nam, $($ex,)* $t$(::$tc)*);)* + $($rn;)? $nam, $($ex$(::$exc)*,)* $t$(::$tc)*);)* }; } diff --git a/source/durandal/err.rs b/source/durandal/err.rs index 7657398..6655063 100644 --- a/source/durandal/err.rs +++ b/source/durandal/err.rs @@ -14,8 +14,8 @@ macro_rules! ok { } macro_rules! flag_ok { - ($t:ident, $v:expr) => { - match $t::from_bits($v) { + ($t:ident$(::$tc:ident)*, $v:expr) => { + match $t$(::$tc)*::from_bits($v) { Some(v) => Ok(v), None => Err(err_msg(concat!("bad ", stringify!($t)))), }