Cargo의 편리한 기능

5414 단어 Rust

목적



Rust 도구에 대해 알아보기

웹에서 Rust 시험



URL

Cargo



빌드 시스템이며 패키지 관리자.
cargo build로 빌드할 수 있다. 필요한 라이브러리의 다운로드와 컴파일을 실시.

Cargo test / cargo-tarpaulin



Cargo test로 테스트 실시 가능
Rust Unit Test 및 커버리지 측정

Cargo fix



빌드시의 warning을 자동으로 수정해 주는 기능.

qiita.rs
fn main() {
  let a=1;//未使用変数なので_をつけるべき

  let mut s="Hello World";//書き換えていないのでmutは必要ない

}

빌드는 할 수 있지만 warning이 나온다.


cargo fix로 수정된다.


Cargo doc



소스 코드와 의존관계에 있는 크레이트(C에서 말하는 링크 관계에 있는 파일)의 문서 작성을 해 준다.

다음과 같은 함수와 trait를 구현한 경우.

qiita.rs
//共通のメソッドを実装するように促す仕組み
//これがないと同じ名前の関数は使用できない
trait  Show{
  fn show(&self);
}

struct Car;
struct RacingCar;

//implで構造体にメソッドを持たせる
impl Show for Car{
  fn show(&self){
    println!("Car");
  }
}

impl Show for RacingCar{
  fn show(&self){
    println!("RacingCar");
  }
}

fn main() {
  let car=Car{};
  car.show();//静的ディスパッチ

  let caa=RacingCar{};
  caa.show();//静的ディスパッチ

  let Car_vec:Vec<Box<dyn Show>>=vec![Box::new(Car),Box::new(RacingCar)];
  for i in Car_vec{
    i.show();//動的ディスパッチ
  }

}

어떤 function이나 trait가 있는지, 어느 구조체에 method가 추가되어 있는지 등을 알 수 있다. link를 포치포치해서 날 수 있다.


Cargo flamegraph



함수 호출의 프로파일 결과를 가시화한 그래프를 출력해 주는 기능.
프로파일링

좋은 웹페이지 즐겨찾기