summaryrefslogtreecommitdiff
path: root/src/model/element.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/element.rs')
-rw-r--r--src/model/element.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/model/element.rs b/src/model/element.rs
index c6738582..4c825a20 100644
--- a/src/model/element.rs
+++ b/src/model/element.rs
@@ -63,6 +63,14 @@ impl ElemFunc {
(self.0.construct)(vm, args)
}
+ /// Whether the contained element has the given capability.
+ pub fn can<C>(&self) -> bool
+ where
+ C: ?Sized + 'static,
+ {
+ (self.0.vtable)(TypeId::of::<C>()).is_some()
+ }
+
/// Create a selector for elements of this function.
pub fn select(self) -> Selector {
Selector::Elem(self, None)