Rust's dependency feature management isn't in a great place. The goal here was to allow WASM builds to use the ed25519 u32 backend and then use the u64 backend for every other build type. In order to do that we have to disable the u64 for everything and then manually re-enable it using the feature flags. Otherwise ed25519 gets built with both flags which causes a bunch of compile errors for duplicate constants. Relevant issue: https://github.com/dalek-cryptography/curve25519-dalek/issues/264
This ideally would be solved by using the architecture-detection flags (i.e. target.'cfg(target_env = "wasm32")'.dependencies) but that doesn't seem to work as expected either.
Rust's dependency feature management isn't in a great place. The goal here was to allow WASM builds to use the ed25519 u32 backend and then use the u64 backend for every other build type. In order to do that we have to disable the u64 for everything and then manually re-enable it using the feature flags. Otherwise ed25519 gets built with both flags which causes a bunch of compile errors for duplicate constants. Relevant issue: https://github.com/dalek-cryptography/curve25519-dalek/issues/264
This ideally would be solved by using the architecture-detection flags (i.e.
target.'cfg(target_env = "wasm32")'.dependencies
) but that doesn't seem to work as expected either.