summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubens Brandao <git@rubens.io>2024-04-16 16:54:30 -0300
committerRubens Brandao <git@rubens.io>2024-04-16 16:54:30 -0300
commit152219cd95f9dafb2acfe4aab7baa17204e02b4e (patch)
treed246ae226054010fef075b49c574f9a38678a7c7
parent9fdd5d0bd053e274a5ae76ab22b32b61c2b80c87 (diff)
remove recursive conversion for Metadata
-rw-r--r--rust/src/metadata.rs18
1 files changed, 9 insertions, 9 deletions
diff --git a/rust/src/metadata.rs b/rust/src/metadata.rs
index e9c83dd5..d92878b9 100644
--- a/rust/src/metadata.rs
+++ b/rust/src/metadata.rs
@@ -403,12 +403,6 @@ impl From<&str> for Ref<Metadata> {
}
}
-impl<T: Into<Ref<Metadata>>> From<&T> for Ref<Metadata> {
- fn from(value: &T) -> Self {
- value.into()
- }
-}
-
impl From<&Vec<u8>> for Ref<Metadata> {
fn from(value: &Vec<u8>) -> Self {
unsafe { Metadata::ref_from_raw(BNCreateMetadataRawData(value.as_ptr(), value.len())) }
@@ -461,7 +455,11 @@ impl<S: BnStrCompatible> From<HashMap<S, Ref<Metadata>>> for Ref<Metadata> {
}
}
-impl<S: BnStrCompatible + Copy, T: Into<Ref<Metadata>>> From<&[(S, T)]> for Ref<Metadata> {
+impl<S, T> From<&[(S, T)]> for Ref<Metadata>
+where
+ S: BnStrCompatible + Copy,
+ for<'a> &'a T: Into<Ref<Metadata>>,
+{
fn from(value: &[(S, T)]) -> Self {
let data: Vec<(S::Result, Ref<Metadata>)> = value
.into_iter()
@@ -483,8 +481,10 @@ impl<S: BnStrCompatible + Copy, T: Into<Ref<Metadata>>> From<&[(S, T)]> for Ref<
}
}
-impl<S: BnStrCompatible + Copy, T: Into<Ref<Metadata>>, const N: usize> From<[(S, T); N]>
- for Ref<Metadata>
+impl<S, T, const N: usize> From<[(S, T); N]> for Ref<Metadata>
+where
+ S: BnStrCompatible + Copy,
+ for<'a> &'a T: Into<Ref<Metadata>>,
{
fn from(value: [(S, T); N]) -> Self {
let slice = &value[..];