use jni::{
objects::{JObject, JString},
JNIEnv,
};
pub fn decode_string(env: &mut JNIEnv, string: &JString) -> Result<String, String> {
let binding = env
.get_string(string)
.map_err(|err| format!("Error while retrieving JString: {}", err))?;
let value = binding
.to_str()
.map_err(|err| format!("Error decoding JString: {}", err))?;
Ok(value.to_string())
}
pub fn encode_string<'local, S: AsRef<str>>(
env: &mut JNIEnv<'local>,
string: S,
) -> Result<JString<'local>, String> {
env.new_string(string.as_ref())
.map_err(|err| format!("Error while encoding JString: {}", err))
}
pub fn null_string() -> JString<'static> {
JString::from(JObject::null())
}