derive macro

derive 매크로는 타입 정의를 읽고 impl 코드를 다시 만든다

커스텀 derive는 사용자가 쓴 struct/enum 토큰을 파싱하고, trait 구현 코드를 토큰으로 생성해 컴파일러에게 돌려준다.

01 타입 정의#[derive(HelloMacro)]

입력 토큰

02 TokenStream컴파일러가 전달

문자열이 아닌 토큰

03 parsesyn으로 구조 분석

이름과 필드 확인

04 quoteimpl 코드 생성

다시 TokenStream 반환

구분의미판단
proc_macro컴파일 시 실행빌드 환경에서 코드 생성
syn입력 파싱AST처럼 다룸
quote출력 생성Rust 코드로 펼침

핵심 derive 매크로는 런타임 기능이 아니라 컴파일 전에 trait 구현을 생성하는 파이프라인이다.