droid_wrap_derive

Attribute Macro java_implement

Source
#[java_implement]
Expand description

实现java interface,将此属性标记在impl上,可以自动实现java接口的动态代理,从而实现java层回调rust层。 其中在接口中定义的每一个方法将自动实现并暴露给java层,但以下划线“_”开头的函数除外。

§Arguments

  • attrs: 属性。
  • input: impl输入。

returns: TokenStream

§Examples

use std::fmt::{Debug, Formatter};
use droid_wrap_derive::{java_interface,java_implement};
#[java_interface(name = "java/lang/Runnable")]
trait Runnable {
fn run(&self);
}
struct RunnableImpl;
impl PartialEq for RunnableImpl {
    fn eq(&self, other: &Self) -> bool {
        todo!()
    }
}
impl Debug for RunnableImpl {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        todo!()
    }
}
#[java_implement]
impl Runnable for RunnableImpl {
fn run(&self) {
println!("Called from java.");
}
}