Handle Dynamic::from(FnPtr).
This commit is contained in:
parent
e1a70fe958
commit
abe74e7f44
@ -551,6 +551,11 @@ impl Dynamic {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boxed = match unsafe_cast_box::<_, FnPtr>(boxed) {
|
||||||
|
Ok(fn_ptr) => return (*fn_ptr).into(),
|
||||||
|
Err(val) => val,
|
||||||
|
};
|
||||||
|
|
||||||
boxed = match unsafe_cast_box::<_, Dynamic>(boxed) {
|
boxed = match unsafe_cast_box::<_, Dynamic>(boxed) {
|
||||||
Ok(d) => return *d,
|
Ok(d) => return *d,
|
||||||
Err(val) => val,
|
Err(val) => val,
|
||||||
@ -805,6 +810,7 @@ impl Dynamic {
|
|||||||
let data = cell.read().unwrap();
|
let data = cell.read().unwrap();
|
||||||
|
|
||||||
let type_id = (*data).type_id();
|
let type_id = (*data).type_id();
|
||||||
|
println!("Type = {}", (*data).type_name());
|
||||||
|
|
||||||
if type_id != TypeId::of::<T>() && TypeId::of::<Dynamic>() != TypeId::of::<T>() {
|
if type_id != TypeId::of::<T>() && TypeId::of::<Dynamic>() != TypeId::of::<T>() {
|
||||||
None
|
None
|
||||||
@ -1176,7 +1182,7 @@ impl<K: Into<ImmutableString>, T: Variant + Clone> From<HashMap<K, T>> for Dynam
|
|||||||
}
|
}
|
||||||
impl From<FnPtr> for Dynamic {
|
impl From<FnPtr> for Dynamic {
|
||||||
fn from(value: FnPtr) -> Self {
|
fn from(value: FnPtr) -> Self {
|
||||||
Box::new(value).into()
|
Self(Union::FnPtr(Box::new(value)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
impl From<Box<FnPtr>> for Dynamic {
|
impl From<Box<FnPtr>> for Dynamic {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user