Skip to main content

command

Attribute Macro command 

Source
#[command]
Expand description

함수를 rustra 명령으로 등록하는 속성 매크로입니다.

§제약 사항

  • 정확히 하나의 입력 파라미터를 가져야 합니다.
  • 반환 타입은 Result<O> 형태여야 합니다.
  • 입력 타입 IDeserializeOwned + JsonSchema를 충족해야 합니다.
  • 출력 타입 OSerialize + JsonSchema를 충족해야 합니다.

§명령 이름 규칙

  • #[command]: 함수 이름에서 _command 접미사를 제거한 뒤 lowerCamelCase로 변환 (예: add_numbersaddNumbers)
  • #[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> { ... }