Skip to content

Commit d69b0af

Browse files
committed
Update README.md
1 parent 17f6cfd commit d69b0af

File tree

1 file changed

+84
-30
lines changed

1 file changed

+84
-30
lines changed

README.md

Lines changed: 84 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,24 @@
11
<!-- -*- coding:utf-8-unix -*- -->
22

3-
# AtCoder Rust Base
3+
# AtCoder Rust Base`ja`テンプレート)
44

5-
このリポジトリは[AtCoder][atcoder]コンテスト(競技プログラミング)にRustで参加するためのCargoパッケージテンプレートです。
6-
パッケージの作成は[cargo-generate][cargo-generate-crate]で行います。
5+
このリポジトリには[AtCoder][atcoder]コンテスト(競技プログラミング)にRustで参加するためのCargoパッケージテンプレートが用意されています。
6+
パッケージは[cargo-generate][cargo-generate-crate]で作成します。
7+
8+
**この`README.md`では`ja`テンプレートの内容について説明します**
9+
他のテンプレートについては[こちら][list-of-templates]をご覧ください。
710

811
[atcoder]: https://atcoder.jp
912
[cargo-generate-crate]: https://crates.io/crates/cargo-generate
13+
[list-of-templates]: https://github.com/rust-lang-ja/atcoder-rust-base/blob/master/README.md#用意されているテンプレート
1014

1115

12-
## 用意されているテンプレート
13-
14-
以下のテンプレートが用意されています。
15-
16-
| 名前 | Rustバージョン | 内容 |
17-
|:-- |:--:|:-- |
18-
| [ja][ja-branch] | 1.35.0 | 標準的な内容のテンプレートに日本語のソースコードコメントを付けたもの。注意:2019年言語アップデート後の環境向け。Rust 1.15.1の環境では使用できない |
19-
| [vendor-ja][vendor-ja-branch] | 1.35.0 | jaをベースに、依存するクレートのソースコードを`vendor`ディレクトリ配下に展開したもの。AtCoderの運営者が環境構築に使用できる。注意:Rust 1.15.1の環境では使用できない |
16+
## `ja`テンプレートの内容
2017

21-
If you want a template with English source code comments, please request it to us by filing [a GitHub issue][gh-issue].
18+
**TODO** もう少し詳しく書く
2219

23-
[ja-branch]: https://github.com/rust-lang-ja/atcoder-rust-base/tree/ja
24-
[vendor-ja-branch]: https://github.com/rust-lang-ja/atcoder-rust-base/tree/vendor-ja
25-
[gh-issue]: https://github.com/rust-lang-ja/atcoder-rust-base/issues
20+
- AtCoder 2019年言語アップデート後の環境向け
21+
- Rust 1.35.0
2622

2723

2824
## 使いかた
@@ -31,35 +27,93 @@ If you want a template with English source code comments, please request it to u
3127

3228
**TODO**
3329

30+
3431
### パッケージの生成
3532

36-
1. `cargo generate`コマンドでパッケージを生成します。
33+
`cargo generate`コマンドでパッケージを生成します。
34+
35+
```console
36+
$ cargo generate --name abc086c \
37+
--git https://github.com/rust-lang-ja/atcoder-rust-base \
38+
--branch ja
39+
```
40+
41+
- `--name`: これから作成するパッケージの名前。好きな名前が付けられる。例:`abc086c`
42+
- `--branch`: このテンプレートリポジトリのブランチ名。`ja`テンプレートを使うなら`ja`を指定する
43+
44+
45+
### 解答となるプログラムの作成
46+
47+
1. 使用するクレートの選択
48+
- [`Cargo.toml`][cargo-toml-file]ファイルを開き`[dependencies]`セクションに書かれているクレートのなかで、必要なものがあればコメントを外します。
49+
- 注意:AtCoderの環境では、これら以外のクレートは使用できません。またバージョンも固定されています。
50+
51+
1. 使用するクレートのドキュメントの生成
52+
- 必須ではありませんが、以下のコマンドで依存クレートのドキュメントをビルドし、Webブラウザで開いておくと便利でしょう。
3753

38-
```console
39-
$ cargo generate --name abc086c --git https://github.com/rust-lang-ja/atcoder-rust-base --branch ja
40-
```
54+
```console
55+
$ cargo doc --open # ドキュメントのビルドし、ビルドできたらWebブラウザで開く
56+
# または
57+
$ cargo doc # ドキュメントのビルドのみ行う
58+
```
4159

42-
- `--name`: パッケージの名前。例:`abc086c`
43-
- `--branch`: このテンプレートリポジトリのブランチ名。`ja`テンプレートを使いたいなら`ja`を指定する
60+
1. テストケースの作成
61+
- [`tests/sample_inputs.rs`](./tests/sample_inputs.rs)ファイルには、ひな型となるテストケースが用意されています。
62+
- AtCoderの問題文に書かれているサンプル入出力をこのファイルに書き写します。
63+
これにより、`cargo test`でプログラムの動作が確認できるようになります。
4464

45-
1. [`Cargo.toml`](./Cargo.toml)ファイルを開き`[dependencies]`セクションにあるクレートのなかで必要なもののコメントを外します。
65+
1. プログラムの作成
66+
- [`src/main.rs`](./src/main.rs)に解答となるプログラムを書きます。
4667

47-
1. [`tests/sample_inputs.rs`](./tests/sample_inputs.rs)ファイルを開き、テストケースを追加します。
68+
1. テストケースの実行
69+
- 以下のコマンドでテストケースを実行し、テストにパスすることを確認します。
4870

49-
1. [`src/main.rs`](./src/main.rs)に解答となるプログラムを書きます。
71+
```console
72+
$ cargo test -j 1
73+
```
5074

51-
1. 以下のコマンドでテストケースを実行し、テストにパスするか確認します。
75+
**実行例**
5276

53-
```console
54-
$ cargo test -j 1
55-
```
77+
```console
78+
$ cargo test -j 1
79+
...
80+
Finished dev [unoptimized + debuginfo] target(s) in 25.31s
81+
Running target/debug/deps/main-aae3efe8c7e14c29
5682

57-
1. プログラムが完成したら、AtCoderに`src/main.rs`の内容を提出します。
83+
running 0 tests
84+
85+
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
86+
87+
Running target/debug/deps/sample_inputs-946c74199de6e6a4
88+
89+
running 3 tests
90+
No
91+
test sample2 ... ok
92+
Yes
93+
test sample1 ... ok
94+
No
95+
test sample3 ... ok
96+
97+
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
98+
```
99+
100+
- `-j`オプションはテストケース実行の並列数を指定し、デフォルト値はCPUの論理コア数です。
101+
`-j 1`を指定すると、テストケースが複数あるときに、それらを1つずつ順番に実行するようになります。
102+
- 上の例では`No`や`Yes`のようにプログラムからの標準出力を表示しています。
103+
もしテストケースが並列に実行されると、複数のテストケースからの標準出力が混ざって分かりにくくなります。
104+
`-j 1`の指定は、このようなときに便利です。
105+
106+
107+
1. プログラムの提出
108+
- プログラムが完成したら、`src/main.rs`の内容をAtCoderに提出します。
109+
`AC`を目指して頑張ってください。
110+
111+
[cargo-toml-file]: ./Cargo.toml
58112

59113

60114
## 使用可能なクレート
61115

62-
**TODO**
116+
AtCoderの環境では、[`Cargo.toml`][cargo-toml-file]にあらかじめ書かれているクレートのみが使用できます。それら以外のクレートを追加するとコンパイルエラーになりますので注意してください。
63117

64118

65119
## ライセンス / License

0 commit comments

Comments
 (0)