Parcelables
Binder for Rust supports sending parcelables directly:
birthday_service/aidl/com/example/birthdayservice/BirthdayInfo.aidl:
package com.example.birthdayservice;parcelable BirthdayInfo {String name;int years;}
birthday_service/aidl/com/example/birthdayservice/IBirthdayService.aidl:
import com.example.birthdayservice.BirthdayInfo;interface IBirthdayService {/** The same thing, but with a parcelable. */String wishWithInfo(in BirthdayInfo info);}
birthday_service/src/client.rs:
fn main() {binder::ProcessState::start_thread_pool();let service = connect().expect("Failed to connect to BirthdayService");let info = BirthdayInfo { name: "Alice".into(), years: 123 };service.wishWithInfo(&info)?;}