diff --git a/lib/macro/internal/Cargo.toml b/lib/macro/internal/Cargo.toml index 84de558..215b255 100644 --- a/lib/macro/internal/Cargo.toml +++ b/lib/macro/internal/Cargo.toml @@ -15,4 +15,4 @@ proc-macro = true [dependencies] data-encoding = { version = "2.3", path = "../..", default-features = false, features = ["alloc"] } -syn = "1" +syn = { version = "1", default-features = false, features = ["parsing", "proc-macro"] } diff --git a/lib/macro/internal/src/lib.rs b/lib/macro/internal/src/lib.rs index a7eaa72..bb1ff33 100644 --- a/lib/macro/internal/src/lib.rs +++ b/lib/macro/internal/src/lib.rs @@ -87,7 +87,7 @@ fn get_bool(map: &mut HashMap, key: &str) -> Option { }; match syn::parse::(node.into()) { Ok(result) => Some(result.value), - _ => panic!("expected bool for padding"), + _ => panic!("expected bool for {}", key), } } diff --git a/lib/macro/tests/lib.rs b/lib/macro/tests/lib.rs index e007666..2d414af 100644 --- a/lib/macro/tests/lib.rs +++ b/lib/macro/tests/lib.rs @@ -76,3 +76,11 @@ fn base64_decode() { const OUTPUT: &'static [u8] = &data_encoding_macro::base64!("deadbeef"); assert_eq!(OUTPUT, data_encoding::BASE64.decode(b"deadbeef").unwrap()); } + +#[test] +fn escaped_symbols() { + const BASE: data_encoding::Encoding = data_encoding_macro::new_encoding! { + symbols: "\x00\n\"\\", + }; + assert_eq!(BASE.encode(b"K"), "\n\x00\"\\"); +}