|
|
@@ -249,11 +249,18 @@ immer unübersichtlicher werden würde. Ziel ist es nun, das meiste aus der
|
|
249
|
249
|
`main.rs` auszulagern, sodass nur noch die *main()* Funktion in `main.rs` steht.
|
|
250
|
250
|
|
|
251
|
251
|
Ausgelagert wird der Code in eine Bibliothek, genauer gesagt in die Datei
|
|
252
|
|
-`src/lib.rs`.
|
|
|
252
|
+`src/lib.rs`. Um den Code aus `lib.rs` in `main.rs` verwenden zu können, müssen
|
|
|
253
|
+Sie ihre derzeitige 'Create' mit den entsprechenden 'extern' und 'use'
|
|
|
254
|
+Anweisungen in `main.rs`, erreichbar machen. Ergänzen Sie dazu in der
|
|
|
255
|
+`src/main.rs`:
|
|
253
|
256
|
|
|
254
|
|
->Um den Code aus `lib.rs` in `main.rs` verwenden zu können, müssen Sie ihre
|
|
255
|
|
->derzeitige 'Create' mit den entsprechenden 'extern' und 'use' Anweisungen in
|
|
256
|
|
->`main.rs`, erreichbar machen.
|
|
|
257
|
+```Rust
|
|
|
258
|
+extern crate task2;
|
|
|
259
|
+use task2::Config;
|
|
|
260
|
+```
|
|
|
261
|
+
|
|
|
262
|
+Alle *use* Anweisungen stehen in der `main.rs`. Es müssen keine weiteren *use*
|
|
|
263
|
+Anweisungen in der lib.rs stehen
|
|
257
|
264
|
|
|
258
|
265
|
### Parsen der Config als Methode
|
|
259
|
266
|
|
|
|
@@ -266,13 +273,18 @@ geeignet in Ihrer *main()* Funktion.
|
|
266
|
273
|
|
|
267
|
274
|
### Tests
|
|
268
|
275
|
|
|
269
|
|
-Die Test sind ausgelagert in die Datei `tests/task2.rs`
|
|
|
276
|
+Die Test sind ausgelagert in die Datei `tests/task2.rs`. Der Aufruf von cargo
|
|
|
277
|
+test sucht nach Unit Tests in der `src/main.rs` und im Verzeichnis `tests/`. Die
|
|
|
278
|
+Tests in `tests/task2.rs` funktionieren erst, wenn eine `src/lib.rs` existiert
|
|
|
279
|
+(siehe Aufgabenstellung [Restructuring](#restructuring) oben).
|
|
270
|
280
|
|
|
271
|
281
|
### Dokumentation
|
|
272
|
282
|
|
|
273
|
283
|
Dokumentieren Sie die Funktionen in Ihrer `lib.rs`.
|
|
274
|
284
|
|
|
275
|
|
-Da Sie im `src/`Verzeichnis eine `main.rs` und eine `lib.rs` vorliegen haben, beschwert sich **cargo doc**, dass es nicht weiss wie es die Dokumentation erstellen soll:
|
|
|
285
|
+Da Sie im `src/`Verzeichnis eine `main.rs` und eine `lib.rs` vorliegen haben,
|
|
|
286
|
+beschwert sich **cargo doc**, dass es nicht weiss wie es die Dokumentation
|
|
|
287
|
+erstellen soll:
|
|
276
|
288
|
|
|
277
|
289
|
```text
|
|
278
|
290
|
error: cannot document a package where a library and a binary have the same name. Consider renaming one or marking the target as `doc = false`
|
|
|
@@ -291,7 +303,7 @@ Damit weiß cargo, dass es die Dokumentation aus `lib.rs` erstellen soll und
|
|
291
|
303
|
nicht aus `main.rs`.
|
|
292
|
304
|
|
|
293
|
305
|
[args]: https://doc.rust-lang.org/std/env/fn.args.html
|
|
294
|
|
-[std::env]: https://doc.rust-lang.org/std/env/index.html
|
|
|
306
|
+[std::env]:https://doc.rust-lang.org/std/env/index.html
|
|
295
|
307
|
[Arc]: https://doc.rust-lang.org/std/env/struct.Args.html
|
|
296
|
308
|
[collect]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.collect
|
|
297
|
309
|
[process::exit()]: https://doc.rust-lang.org/std/process/fn.exit.html
|