Изменение API
Расширим API: позволим клиентам передавать список строк для поздравительной открытки:
package com.example.birthdayservice;
/** Интерфейс сервиса дня рождения. */
interface IBirthdayService {
/** Сгенерировать поздравление с днём рождения. */
String wishHappyBirthday(String name, int years, in String[] text);
}
Это приводит к обновлённому определению трейта IBirthdayService:
// Copyright 2024 Google LLC
// SPDX-License-Identifier: Apache-2.0
trait IBirthdayService {
fn wishHappyBirthday(
&self,
name: &str,
years: i32,
text: &[String],
) -> binder::Result<String>;
}
- Обратите внимание, как
String[]в определении AIDL переводится в&[String]в Rust, то есть в сгенерированных привязках везде, где возможно, используются идиоматичные типы Rust:- Входные массивы (
in) переводятся в срезы. - Аргументы
outиinoutпереводятся в&mut Vec<T>. - Возвращаемые значения переводятся в возврат
Vec<T>.
- Входные массивы (