From 688b9898c40a92651b9d66fe25455508b4090219 Mon Sep 17 00:00:00 2001 From: Jiri Date: Sat, 5 Apr 2025 00:12:06 +0200 Subject: [PATCH 1/4] Untagged derive --- Cargo.lock | 19 ++++++++++++ Cargo.toml | 2 ++ src/lib.rs | 2 ++ untagged-derive/Cargo.toml | 11 +++++++ untagged-derive/src/lib.rs | 59 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 93 insertions(+) create mode 100644 untagged-derive/Cargo.toml create mode 100644 untagged-derive/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 26d7081..b8b3147 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -210,8 +210,10 @@ dependencies = [ "hex", "ripemd", "serde", + "serde-cw-value", "sha2 0.10.8", "tiny-keccak", + "untagged-derive", ] [[package]] @@ -547,6 +549,15 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-cw-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75d32da6b8ed758b7d850b6c3c08f1d7df51a4df3cb201296e63e34a78e99d4" +dependencies = [ + "serde", +] + [[package]] name = "serde-json-wasm" version = "0.5.2" @@ -708,6 +719,14 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "untagged-derive" +version = "0.1.0" +dependencies = [ + "quote", + "syn 2.0.52", +] + [[package]] name = "version_check" version = "0.9.4" diff --git a/Cargo.toml b/Cargo.toml index 9f91b2d..50089ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,3 +16,5 @@ serde = { version = "1.0.145", default-features = false, features = ["derive"] } tiny-keccak = { version = "2.0.2", features = ["keccak"] } hex = "0.4.3" base64 = "0.21.7" +serde-cw-value = { version = "0.7.0" } +untagged-derive = { path = "untagged-derive" } \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index a0c17f0..182b11c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,3 +7,5 @@ pub mod pausing; pub mod permissions; pub mod storage; pub mod testing; + +pub use untagged_derive; \ No newline at end of file diff --git a/untagged-derive/Cargo.toml b/untagged-derive/Cargo.toml new file mode 100644 index 0000000..3190ebc --- /dev/null +++ b/untagged-derive/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "untagged-derive" +version = "0.1.0" +edition = "2021" + +[lib] +proc-macro = true + +[dependencies] +quote = "1" +syn = { version = "2", features = ["full"] } diff --git a/untagged-derive/src/lib.rs b/untagged-derive/src/lib.rs new file mode 100644 index 0000000..6b7e25a --- /dev/null +++ b/untagged-derive/src/lib.rs @@ -0,0 +1,59 @@ +extern crate proc_macro; +use proc_macro::TokenStream; +use quote::quote; +use syn::{parse_macro_input, Data, DeriveInput}; + +#[proc_macro_derive(GenericUntaggedEnum)] +pub fn derive_generic_untagged_enum(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let enum_name = &input.ident; + + let Data::Enum(data_enum) = &input.data else { + panic!("#[derive(GenericUntaggedEnum)] can only be used on enums"); + }; + + let deserializers = data_enum.variants.iter().map(|v| { + let variant = &v.ident; + + let field_ty = match &v.fields { + syn::Fields::Unnamed(fields) if fields.unnamed.len() == 1 => { + &fields.unnamed.first().unwrap().ty + } + _ => panic!("GenericUntaggedEnum only supports tuple enum variants with one field."), + }; + + quote! { + if let ::serde::__private::Ok(__ok) = ::serde::__private::Result::map( + <#field_ty as ::serde::Deserialize>::deserialize( + ::serde_cw_value::ValueDeserializer::<::serde_cw_value::DeserializerError>::new(__content.clone()) + ), + #enum_name::#variant, + ) { + return ::serde::__private::Ok(__ok); + } + } + }); + + let output = quote! { + #[automatically_derived] + impl<'de> ::serde::Deserialize<'de> for #enum_name { + fn deserialize<__D>(__deserializer: __D) -> ::serde::__private::Result + where + __D: ::serde::Deserializer<'de>, + { + let __content = match <::serde_cw_value::Value>::deserialize(__deserializer) { + ::serde::__private::Ok(__val) => __val, + ::serde::__private::Err(__err) => return serde::__private::Err(__err), + }; + + #(#deserializers)* + + serde::__private::Err(serde::de::Error::custom( + "data did not match any variant of untagged enum" + )) + } + } + }; + + TokenStream::from(output) +} From a81e471e418bd06ecd63bcec21d898054b076d0d Mon Sep 17 00:00:00 2001 From: Jiri Date: Sat, 5 Apr 2025 00:16:45 +0200 Subject: [PATCH 2/4] extern --- Cargo.lock | 3 ++- Cargo.toml | 1 - untagged-derive/Cargo.toml | 2 ++ untagged-derive/src/lib.rs | 2 ++ 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b8b3147..b32f8d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -210,7 +210,6 @@ dependencies = [ "hex", "ripemd", "serde", - "serde-cw-value", "sha2 0.10.8", "tiny-keccak", "untagged-derive", @@ -724,6 +723,8 @@ name = "untagged-derive" version = "0.1.0" dependencies = [ "quote", + "serde", + "serde-cw-value", "syn 2.0.52", ] diff --git a/Cargo.toml b/Cargo.toml index 50089ab..ac05dac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,5 +16,4 @@ serde = { version = "1.0.145", default-features = false, features = ["derive"] } tiny-keccak = { version = "2.0.2", features = ["keccak"] } hex = "0.4.3" base64 = "0.21.7" -serde-cw-value = { version = "0.7.0" } untagged-derive = { path = "untagged-derive" } \ No newline at end of file diff --git a/untagged-derive/Cargo.toml b/untagged-derive/Cargo.toml index 3190ebc..faf7984 100644 --- a/untagged-derive/Cargo.toml +++ b/untagged-derive/Cargo.toml @@ -9,3 +9,5 @@ proc-macro = true [dependencies] quote = "1" syn = { version = "2", features = ["full"] } +serde-cw-value = { version = "0.7.0" } +serde = { version = "1.0.145", default-features = false, features = ["derive"] } \ No newline at end of file diff --git a/untagged-derive/src/lib.rs b/untagged-derive/src/lib.rs index 6b7e25a..c562e06 100644 --- a/untagged-derive/src/lib.rs +++ b/untagged-derive/src/lib.rs @@ -2,6 +2,8 @@ extern crate proc_macro; use proc_macro::TokenStream; use quote::quote; use syn::{parse_macro_input, Data, DeriveInput}; +extern crate serde_cw_value; +extern crate serde; #[proc_macro_derive(GenericUntaggedEnum)] pub fn derive_generic_untagged_enum(input: TokenStream) -> TokenStream { From 50327690b2d1230309980b89739e3a89a0424422 Mon Sep 17 00:00:00 2001 From: Jiri Date: Sat, 5 Apr 2025 00:18:14 +0200 Subject: [PATCH 3/4] May fix --- Cargo.lock | 155 ++++++++++++++++++++++++++++------------------------- Cargo.toml | 1 + 2 files changed, 82 insertions(+), 74 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b32f8d1..64171e8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,9 +27,9 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64ct" -version = "1.6.0" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" [[package]] name = "bech32" @@ -81,12 +81,11 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "cosmwasm-crypto" -version = "1.5.3" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9934c79e58d9676edfd592557dee765d2a6ef54c09d5aa2edb06156b00148966" +checksum = "a9c82e56962f0f18c9a292aa59940e03a82ce15ef79b93679d5838bb8143f0df" dependencies = [ "digest 0.10.7", - "ecdsa", "ed25519-zebra", "k256", "rand_core 0.6.4", @@ -95,18 +94,18 @@ dependencies = [ [[package]] name = "cosmwasm-derive" -version = "1.5.3" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5e72e330bd3bdab11c52b5ecbdeb6a8697a004c57964caeb5d876f0b088b3c" +checksum = "d9b804ff15a0e059c88f85ae0e868cf8c7aba9d61221e46f1ad7250f270628c7" dependencies = [ "syn 1.0.109", ] [[package]] name = "cosmwasm-schema" -version = "1.5.5" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7879036156092ad1c22fe0d7316efc5a5eceec2bc3906462a2560215f2a2f929" +checksum = "5526ea839acb47bbf8fff031ed9aad86e74d43f77b089255417328c3664367d5" dependencies = [ "cosmwasm-schema-derive", "schemars", @@ -117,9 +116,9 @@ dependencies = [ [[package]] name = "cosmwasm-schema-derive" -version = "1.5.5" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb57855fbfc83327f8445ae0d413b1a05ac0d68c396ab4d122b2abd7bb82cb6" +checksum = "10f41b99f41f840765d02ae858956bb52af910755976312082e90493c67db512" dependencies = [ "proc-macro2", "quote", @@ -128,9 +127,9 @@ dependencies = [ [[package]] name = "cosmwasm-std" -version = "1.5.3" +version = "1.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef8666e572a3a2519010dde88c04d16e9339ae751b56b2bb35081fe3f7d6be74" +checksum = "763340055b84e5482ed90fec8194ff7d59112267a09bbf5819c9e3edca8c052e" dependencies = [ "base64", "bech32", @@ -150,18 +149,18 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-bigint" @@ -210,6 +209,7 @@ dependencies = [ "hex", "ripemd", "serde", + "serde-cw-value", "sha2 0.10.8", "tiny-keccak", "untagged-derive", @@ -228,9 +228,9 @@ dependencies = [ [[package]] name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "zeroize", @@ -270,9 +270,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" [[package]] name = "ecdsa" @@ -324,9 +324,9 @@ dependencies = [ [[package]] name = "ff" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "rand_core 0.6.4", "subtle", @@ -351,9 +351,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -397,15 +397,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "k256" -version = "0.13.1" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -417,21 +417,27 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.153" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "once_cell" -version = "1.19.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "pkcs8" @@ -445,18 +451,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -497,15 +503,15 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "schemars" -version = "0.8.16" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" dependencies = [ "dyn-clone", "schemars_derive", @@ -515,14 +521,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.16" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] @@ -541,9 +547,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.197" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] @@ -568,33 +574,34 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.100", ] [[package]] name = "serde_derive_internals" -version = "0.26.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -651,9 +658,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -668,9 +675,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.52" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -679,22 +686,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn 2.0.100", ] [[package]] @@ -708,15 +715,15 @@ dependencies = [ [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "untagged-derive" @@ -725,14 +732,14 @@ dependencies = [ "quote", "serde", "serde-cw-value", - "syn 2.0.52", + "syn 2.0.100", ] [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "wasi" @@ -742,6 +749,6 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/Cargo.toml b/Cargo.toml index ac05dac..50089ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,5 @@ serde = { version = "1.0.145", default-features = false, features = ["derive"] } tiny-keccak = { version = "2.0.2", features = ["keccak"] } hex = "0.4.3" base64 = "0.21.7" +serde-cw-value = { version = "0.7.0" } untagged-derive = { path = "untagged-derive" } \ No newline at end of file From 261e9657b2ffc0c86503286c131436c4b1387f01 Mon Sep 17 00:00:00 2001 From: Jiri Date: Sat, 5 Apr 2025 00:20:15 +0200 Subject: [PATCH 4/4] extern --- Cargo.lock | 2 -- src/lib.rs | 3 ++- untagged-derive/Cargo.toml | 2 -- untagged-derive/src/lib.rs | 2 -- 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 64171e8..311631f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -730,8 +730,6 @@ name = "untagged-derive" version = "0.1.0" dependencies = [ "quote", - "serde", - "serde-cw-value", "syn 2.0.100", ] diff --git a/src/lib.rs b/src/lib.rs index 182b11c..42da1cf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,4 +8,5 @@ pub mod permissions; pub mod storage; pub mod testing; -pub use untagged_derive; \ No newline at end of file +extern crate serde_cw_value; +pub use untagged_derive; diff --git a/untagged-derive/Cargo.toml b/untagged-derive/Cargo.toml index faf7984..3190ebc 100644 --- a/untagged-derive/Cargo.toml +++ b/untagged-derive/Cargo.toml @@ -9,5 +9,3 @@ proc-macro = true [dependencies] quote = "1" syn = { version = "2", features = ["full"] } -serde-cw-value = { version = "0.7.0" } -serde = { version = "1.0.145", default-features = false, features = ["derive"] } \ No newline at end of file diff --git a/untagged-derive/src/lib.rs b/untagged-derive/src/lib.rs index c562e06..6b7e25a 100644 --- a/untagged-derive/src/lib.rs +++ b/untagged-derive/src/lib.rs @@ -2,8 +2,6 @@ extern crate proc_macro; use proc_macro::TokenStream; use quote::quote; use syn::{parse_macro_input, Data, DeriveInput}; -extern crate serde_cw_value; -extern crate serde; #[proc_macro_derive(GenericUntaggedEnum)] pub fn derive_generic_untagged_enum(input: TokenStream) -> TokenStream {