반복 문법인지
println!, vec!처럼 토큰 패턴 반복이면 macro_rules!가 간단하다.
declarativemacro_rules!, derive, attribute/function-like proc macro는 모두 코드를 생성하지만 입력 형태, 타입 정보 접근, 디버깅 방식이 달라서 문제에 맞게 선택해야 한다.
println!, vec!처럼 토큰 패턴 반복이면 macro_rules!가 간단하다.
declarativeSerialize, Debug처럼 타입 정의에서 구현을 만들면 derive가 맞다.
#[derive]SQL DSL, route attribute처럼 입력 토큰을 분석해야 하면 proc macro를 쓴다.
TokenStreamcargo expand로 생성 코드를 확인하고 오류 위치가 사용자 코드에 잘 매핑되는지 본다.
expansion