use trait upcasting and drop the as_any/as_any_mut boilerplate by a10y · Pull Request #7220 · vortex-data/vortex
Since Rust 1.86 (which is before our MSRV) there has been builtin trait upcasting, meaning instead of forcing all our traits to have a dummy fn as_any(&self) -> &dyn Any methods with trivial impls, we can instead just take a pointer to the trait object and do as &dyn Any.
This reduces the amount of boilerplate in trait impls, which is nice. Another benefit is that in the past blanket impls like SessionVar would end up getting pulled in for dispatch of calls to as_any() which has caused me frustration. Now the dispatch is clearer.
This isn't a breaking change b/c it doesn't touch the VTables, which is the implementer surface area