Repolode
dtolnay

dtolnay/proc-macro-workshop

각각 구현할 스켈레톤과 trybuild 테스트 스위트가 포함된 Rust 프로시저 매크로 프로젝트 5개의 실습 워크숍입니다.

스타
4,873
포크
1,216
열린 이슈
3
마지막 커밋
3개월 전

어떤 프로젝트인가요?

이 저장소는 컴파일 시점에 Rust 코드를 생성하는 Rust 함수인 프로시저 매크로 작성법을 배우는 워크숍입니다. 빌더 패턴용 derive 매크로, 필드별로 서식 문자열을 받도록 사용자 지정할 수 있는 Debug derive, 코드의 인덱스별 복사본을 생성하는 함수형 매크로 seq!, 정렬되지 않은 enum 변형을 컴파일 오류로 보고하는 #[sorted] 어트리뷰트 매크로, 그리고 구조체 필드를 바이트 배열에 패킹하고 getter와 setter를 생성하는 #[bitfield] 어트리뷰트 등 다섯 가지 프로젝트가 들어 있습니다.

각 프로젝트는 스켈레톤 코드와 함께 제공되며, tests 디렉터리에 테스트 스위트가 있습니다. 테스트는 trybuild로 실행하며, 성공적으로 확장되는 경우와 컴파일에 실패해야 하는 코드의 정확한 컴파일러 오류 메시지를 모두 확인합니다. 워크숍에서는 derive(Builder)부터 시작한 다음, trait bound, 사용자 지정 입력 파싱, 진단 중 무엇에 집중하고 싶은지에 따라 나머지 프로젝트를 선택하는 학습 순서를 제안합니다.

또한 cargo expand를 사용하거나 생성된 토큰 스트림을 stderr에 출력하는 등 매크로 디버깅 기법도 설명합니다.

핵심 기능

  • 01derive, 함수형, 어트리뷰트 매크로를 다루는 단계별 프로젝트 5개.
  • 02컴파일러 오류 출력을 정확히 확인하는 trybuild 기반 테스트 스위트.
  • 03각 프로젝트의 스켈레톤 코드와 단계별 테스트 활성화 과정.
  • 04cargo expand와 토큰 스트림 출력을 활용한 디버깅 안내.
  • 05관심사에 따른 추천 학습 순서.

활용 사례

  • 안내형 실습으로 Rust 프로시저 매크로를 처음 배우는 경우.
  • 제네릭 derive 매크로에서 trait bound 처리를 연습하는 경우.
  • Rust 라이브러리의 사용자 지정 컴파일 시점 진단 기능을 구현할 준비를 하는 경우.
  • 매크로로 비트 패킹 구조체 API를 생성하는 방법을 학습하는 경우.

빠른 시작

  1. 1

    저장소를 clone하고 builder와 같은 프로젝트 디렉터리로 이동합니다

  2. 2

    해당 프로젝트의 테스트 스위트를 실행합니다

    cargo test

토픽

#rust#procedural-macros#metaprogramming#learning#workshop#trybuild#code-generation

자주 묻는 질문

proc-macro-workshop은(는) 무엇인가요?
각각 구현할 스켈레톤과 trybuild 테스트 스위트가 포함된 Rust 프로시저 매크로 프로젝트 5개의 실습 워크숍입니다. 이 저장소는 컴파일 시점에 Rust 코드를 생성하는 Rust 함수인 프로시저 매크로 작성법을 배우는 워크숍입니다. 빌더 패턴용 derive 매크로, 필드별로 서식 문자열을 받도록 사용자 지정할 수 있는 Debug derive, 코드의 인덱스별 복사본을 생성하는 함수형 매크로 seq!, 정렬되지 않은 enum 변형을 컴파일 오류로 보고하는 #[sorted] 어트리뷰트 매크로, 그리고 구조체 필드를 바이트 배열에 패킹하고 getter와 setter를 생성하는 #[bitfield] 어트리뷰트 등 다섯 가지 프로젝트가 들어 있습니다.
proc-macro-workshop은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
proc-macro-workshop은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
proc-macro-workshop은(는) 아직 유지보수되고 있나요?
6개월 이내 업데이트. proc-macro-workshop의 마지막 커밋은 2026년 8월 6일입니다.
proc-macro-workshop은(는) 어디에 사용할 수 있나요?
안내형 실습으로 Rust 프로시저 매크로를 처음 배우는 경우. 제네릭 derive 매크로에서 trait bound 처리를 연습하는 경우. Rust 라이브러리의 사용자 지정 컴파일 시점 진단 기능을 구현할 준비를 하는 경우. 매크로로 비트 패킹 구조체 API를 생성하는 방법을 학습하는 경우.
proc-macro-workshop는 어떻게 설치하나요?
저장소를 clone하고 builder와 같은 프로젝트 디렉터리로 이동합니다 해당 프로젝트의 테스트 스위트를 실행합니다: cargo test
proc-macro-workshop은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/dtolnay/proc-macro-workshop

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트