mirror of
https://github.com/hexedtech/jni-toolbox.git
synced 2025-03-13 18:15:32 +01:00
53 lines
1.9 KiB
Rust
53 lines
1.9 KiB
Rust
pub mod into_java;
|
|
pub mod from_java;
|
|
|
|
pub use jni_toolbox_macro::jni;
|
|
pub use into_java::{IntoJavaObject, IntoJava};
|
|
pub use from_java::{FromJava, from_java_static};
|
|
|
|
|
|
/// An error that is meant to be used with jni-toolbox.
|
|
pub trait JniToolboxError: std::error::Error {
|
|
/// The Java class for the matching exception.
|
|
fn jclass(&self) -> String;
|
|
}
|
|
|
|
impl JniToolboxError for jni::errors::Error {
|
|
fn jclass(&self) -> String {
|
|
match self {
|
|
jni::errors::Error::NullPtr(_) => "java/lang/NullPointerException",
|
|
_ => "java/lang/RuntimeException",
|
|
// jni::errors::Error::WrongJValueType(_, _) => todo!(),
|
|
// jni::errors::Error::InvalidCtorReturn => todo!(),
|
|
// jni::errors::Error::InvalidArgList(_) => todo!(),
|
|
// jni::errors::Error::MethodNotFound { name, sig } => todo!(),
|
|
// jni::errors::Error::FieldNotFound { name, sig } => todo!(),
|
|
// jni::errors::Error::JavaException => todo!(),
|
|
// jni::errors::Error::JNIEnvMethodNotFound(_) => todo!(),
|
|
// jni::errors::Error::NullDeref(_) => todo!(),
|
|
// jni::errors::Error::TryLock => todo!(),
|
|
// jni::errors::Error::JavaVMMethodNotFound(_) => todo!(),
|
|
// jni::errors::Error::FieldAlreadySet(_) => todo!(),
|
|
// jni::errors::Error::ThrowFailed(_) => todo!(),
|
|
// jni::errors::Error::ParseFailed(_, _) => todo!(),
|
|
// jni::errors::Error::JniCall(_) => todo!(),
|
|
}
|
|
.to_string()
|
|
}
|
|
}
|
|
|
|
impl JniToolboxError for jni::errors::JniError {
|
|
fn jclass(&self) -> String {
|
|
match self {
|
|
_ => "java/lang/RuntimeException",
|
|
// jni::errors::JniError::Unknown => todo!(),
|
|
// jni::errors::JniError::ThreadDetached => todo!(),
|
|
// jni::errors::JniError::WrongVersion => todo!(),
|
|
// jni::errors::JniError::NoMemory => todo!(),
|
|
// jni::errors::JniError::AlreadyCreated => todo!(),
|
|
// jni::errors::JniError::InvalidArguments => todo!(),
|
|
// jni::errors::JniError::Other(_) => todo!(),
|
|
}
|
|
.to_string()
|
|
}
|
|
}
|