#[command]Expand description
함수를 rustra 명령으로 등록하는 속성 매크로입니다.
§제약 사항
- 정확히 하나의 입력 파라미터를 가져야 합니다.
- 반환 타입은
Result<O>형태여야 합니다. - 입력 타입
I는DeserializeOwned + JsonSchema를 충족해야 합니다. - 출력 타입
O는Serialize + JsonSchema를 충족해야 합니다.
§명령 이름 규칙
#[command]: 함수 이름에서_command접미사를 제거한 뒤 lowerCamelCase로 변환 (예:add_numbers→addNumbers)#[command(name = "customName")]: 지정한 이름을 그대로 사용
§컴파일 타임 검증
매크로는 다음을 자동으로 검증합니다:
- 입력 파라미터가 정확히 하나인지
- 반환 타입이
Result<O>형태인지 - 입출력 타입이 필요한 trait bound를 충족하는지
§예제
ⓘ
#[command]
fn add_numbers(input: AddNumbersInput) -> Result<AddNumbersOutput> {
Ok(AddNumbersOutput { value: input.a + input.b })
}
#[command(name = "multiply")]
fn mul(input: MulInput) -> Result<MulOutput> { ... }