Универсальные (динамические) типы

use std::any::Any;

let mut d: Box<dyn Any> = Box::new("some string");
println!("{:?}", d.downcast_mut::<&str>());

d = Box::new(3.14);
println!("{:?}", d.downcast_mut::<f64>());

d = Box::new([235]);
println!("{:?}", d.downcast_mut::<[i323]>());