1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
use crate::{errors::*, JNIEnv};
/// Trait for things that can be looked up through the JNI via a descriptor.
/// This will be something like the fully-qualified class name
/// `java/lang/String` or a tuple containing a class descriptor, method name,
/// and method signature. For convenience, this is also implemented for the
/// concrete types themselves in addition to their descriptors.
pub trait Desc<'a, T> {
/// Look up the concrete type from the JVM.
fn lookup(self, _: &JNIEnv<'a>) -> Result<T>;
}
impl<'a, T> Desc<'a, T> for T {
fn lookup(self, _: &JNIEnv<'a>) -> Result<T> {
Ok(self)
}
}