Cargo의 편리한 기능
5414 단어 Rust
목적
Rust 도구에 대해 알아보기
웹에서 Rust 시험
URL
Cargo
빌드 시스템이며 패키지 관리자.
cargo build로 빌드할 수 있다. 필요한 라이브러리의 다운로드와 컴파일을 실시.
Cargo test / cargo-tarpaulin
Cargo test로 테스트 실시 가능
Rust Unit Test 및 커버리지 측정
Cargo fix
빌드시의 warning을 자동으로 수정해 주는 기능.
qiita.rsfn 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
함수 호출의 프로파일 결과를 가시화한 그래프를 출력해 주는 기능.
프로파일링
Reference
이 문제에 관하여(Cargo의 편리한 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asparagasu/items/29bc4a11909ee3d004a7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
URL
Cargo
빌드 시스템이며 패키지 관리자.
cargo build로 빌드할 수 있다. 필요한 라이브러리의 다운로드와 컴파일을 실시.
Cargo test / cargo-tarpaulin
Cargo test로 테스트 실시 가능
Rust Unit Test 및 커버리지 측정
Cargo fix
빌드시의 warning을 자동으로 수정해 주는 기능.
qiita.rsfn 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
함수 호출의 프로파일 결과를 가시화한 그래프를 출력해 주는 기능.
프로파일링
Reference
이 문제에 관하여(Cargo의 편리한 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asparagasu/items/29bc4a11909ee3d004a7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
fn main() {
let a=1;//未使用変数なので_をつけるべき
let mut s="Hello World";//書き換えていないのでmutは必要ない
}
//共通のメソッドを実装するように促す仕組み
//これがないと同じ名前の関数は使用できない
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();//動的ディスパッチ
}
}
Reference
이 문제에 관하여(Cargo의 편리한 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/asparagasu/items/29bc4a11909ee3d004a7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)