تغییر دادن API
اجازه دهید API را با عملکرد بیشتری گسترش دهیم: میخواهیم به مشتریان اجازه دهیم لیستی از خطوط را برای کارت تولد مشخص کنند:
package com.example.birthdayservice;
/** Birthday service interface. */
interface IBirthdayService {
/** Generate a Happy Birthday message. */
String wishHappyBirthday(String name, int years, in String[] text);
}
این منجر به یک تعریف ویژگی به روز شده برای IBirthdayService
میشود:
trait IBirthdayService {
fn wishHappyBirthday(
&self,
name: &str,
years: i32,
text: &[String],
) -> binder::Result<String>;
}
- توجه داشته باشید که چگونه
String[]
در تعریف AIDL به عنوان&[String]
در Rust ترجمه میشود، بهعنوان مثال از idiomatic Rust type در bindingهای تولید شده تا جایی که ممکن است استفاده میشود:- آرگومان های آرایه
in
به sliceها ترجمه میشوند. - آرگومانهای
out
وinout
به&mut Vec<T>
ترجمه میشوند. - مقادیر بازگشتی به بازگرداندن
Vec<T>
ترجمه میشوند.
- آرگومان های آرایه