호출 토큰
vec![1, 2], derive, 속성, 함수형 호출이
입력이 된다.
매크로는 런타임 함수를 호출하는 장치가 아니라 컴파일 전에 토큰을 받아 새 코드를 만들어 넣는 장치다. 언제 함수로 충분하고 언제 매크로가 필요한지 먼저 가른다.
vec![1, 2], derive, 속성, 함수형 호출이
입력이 된다.
macro_rules!는 패턴 매칭, 절차적 매크로는
TokenStream 분석을 쓴다.
반복, 구현 블록, 속성 처리, 새 표현식이 결과 토큰으로 만들어진다.
확장된 코드는 이후 타입 검사와 빌드 과정을 일반 코드처럼 통과해야 한다.
macro_rules!
TokenStream
#[derive(HelloMacro)]처럼 타입에 구현을 자동으로
붙인다.
#[route(GET, "/")]처럼 아이템에 새 의미를 덧입힌다.
sql!(SELECT *)처럼 함수 호출 모양으로 토큰을
처리한다.