diff options
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/intertrait/mod.rs | 7 | ||||
-rw-r--r-- | src/libs/mod.rs | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/libs/intertrait/mod.rs b/src/libs/intertrait/mod.rs index 2d62871..bdae4c7 100644 --- a/src/libs/intertrait/mod.rs +++ b/src/libs/intertrait/mod.rs @@ -23,7 +23,7 @@ //! MIT license (LICENSE-MIT or <http://opensource.org/licenses/MIT>) //! //! at your option. -use std::any::{Any, TypeId}; +use std::any::{type_name, Any, TypeId}; use std::rc::Rc; use std::sync::Arc; @@ -60,7 +60,10 @@ static CASTER_MAP: Lazy<AHashMap<(TypeId, TypeId), BoxedCaster>> = Lazy::new(|| fn cast_arc_panic<Trait: ?Sized + 'static>(_: Arc<dyn Any + Sync + Send>) -> Arc<Trait> { - panic!("Prepend [sync] to the list of target traits for Sync + Send types") + panic!( + "Interface trait '{}' has not been marked async", + type_name::<Trait>() + ) } /// A `Caster` knows how to cast a reference to or `Box` of a trait object for `Any` diff --git a/src/libs/mod.rs b/src/libs/mod.rs index 8d5583d..b1c7a74 100644 --- a/src/libs/mod.rs +++ b/src/libs/mod.rs @@ -1,3 +1,5 @@ pub mod intertrait; +#[cfg(feature = "async")] +pub extern crate async_trait; pub extern crate linkme; |