jni-bind 0.1.1

Made importing classes from java easy
Documentation
jni-bind-0.1.1 has been yanked.

jni-bind-rs

Docs Crates.io Crates.io

Made importing classes from java easy!

This library provides the import_class macro that automatically implements the object structure. All the method IDs and classes are cached to increase performance.

Known Limitations

  • can only be compiled with nightly feature anonymous_lifetime_in_impl_trait.
  • static methods that returns an Object cannot be declared due to compiler not able to infer local lifetime.

Examples

Basic usage of import_class:

#![no_main]
#![feature(anonymous_lifetime_in_impl_trait)]

use jni_bind::import_class;
use jni_bind::{jboolean, jint, jlong};

import_class! {
    "java/lang/Object";
    Object;
    constructor();
    /// Indicates whether some other object is "equal to" this one.
    fn equals(&self, other: Object) ->  jboolean;
    /// Returns a hash code value for the object.
    fn hashCode(&self) -> jint;
    /// Wakes up a single thread that is waiting on this object's monitor.
    fn notify(&self) -> ();
    /// Wakes up all threads that are waiting on this object's monitor.
    fn notifyAll(&self) -> ();
    /// Returns a string representation of the object.
    fn toString(&self) -> String;
    /// Causes the current thread to wait until it is awakened,
    /// typically by being notified or interrupted,
    /// or until a certain amount of real time has elapsed.
    fn wait(&self, timeout_millis: jlong, nanos: jint) -> ();
}

import_class!{
    "java/lang/String";
    String;
    extends Object;
}