Topazdocs
인터롭과 마이그레이션

Rust 상호 운용

Rust 생성과 네이티브 빌드가 제공하는 것과 제공하지 않는 것.

Rust는 Topaz의 빌드 타겟이지 Topaz 안에 삽입되는 문법이 아닙니다. 검사기가 전체 Topaz 프로그램을 해석한 뒤에 Rust 소스와 런타임을 생성합니다.

기본 규칙

기본 Rust 백엔드는 일반적인 Topaz 값을 박싱해 다룹니다. 네이티브 백엔드는 타입으로 안전하게 판단할 수 있는 스칼라 구간을 최적화하고, 그렇지 않은 부분은 일반 표현을 사용합니다. emit --out-dir은 Cargo로 빌드할 수 있는 크레이트를 만듭니다.

사용 방법

Topaz 소스와 공개 모듈 API를 기준으로 유지하세요. checkrunemit 또는 build 순으로 확인하고, 생성된 크레이트를 Rust 서비스에 연결할 때는 연결 코드의 소유권, 오류, 의존성, 보안을 Rust 코드로서 따로 검토하세요.

현재 지원

v5.6 Rust 백엔드는 매뉴얼의 주요 문법, 표준 라이브러리, 모듈, 실행 오류와 자원 정리를 다룹니다. 생성된 프로그램은 런타임을 함께 포함하므로 실행 대상에 Topaz를 따로 설치할 필요가 없습니다.

제한 사항

use crate::, ::, Rust 속성, &str, Vec<T>, impl, &self, move || 같은 Rust 토큰은 Topaz 소스에서 사용할 수 없습니다. 생성된 Rust의 내부 구조는 안정적인 공개 API가 아니며, 사용자가 추가한 Rust 연결 코드의 안전성을 Topaz가 자동으로 보장하지 않습니다.

명령 예시

topaz emit main.tpz
topaz emit main.tpz --out-dir generated-rust
topaz build main.tpz --out-dir native-build --run

관련 문서