How-To
Rust-Codebeispiel einbinden
mdBook unterstützt ausführbare und testbare Rust-Codeblöcke direkt in Markdown. Ein Codeblock kann dabei entweder nur zur Anzeige dienen oder direkt im Rust Playground ausgeführt werden.
Beispiel: Einfache mathematische Funktionen
main.rs definiert zwei Funktionen:
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn subtract(a: i32, b: i32) -> i32 {
a - b
}
fn main() {
println!("2 + 3 = {}", add(2, 3));
println!("5 - 2 = {}", subtract(5, 2));
}
Ausgabe im Browser:
2 + 3 = 5
5 - 2 = 3
Funktionsreferenz
| Funktion | Beschreibung | Beispiel | Ergebnis |
|---|---|---|---|
add(a, b) | Addiert zwei Ganzzahlen | add(2, 3) | 5 |
subtract(a, b) | Subtrahiert b von a | subtract(5, 2) | 3 |
Ausführbare Codeblöcke
Das Attribut Editable macht einen Codeblock im Browser direkt bearbeitbar:
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn main() {
println!("2 + 3 = {}", add(2, 3));
}
Rust-Doctests
Ein Doctest ist ein automatisch testbarer Codeblock direkt in der Dokumentation.
Mit mdbook test werden alle Rust-Codeblöcke automatisch getestet:
mdbook test
| Attribut | Bedeutung |
|---|---|
editable | Code im Browser editierbar |
noplayground | Playground-Button ausblenden |
ignore | Block wird beim Test übersprungen |
should_panic | Test erwartet einen Panic |
Mermaid-Diagramm
Das folgende Klassendiagramm zeigt die Struktur eines einfachen Fußballspiels in Rust, durch Mermaid modeliert. Es beschreibt die beteiligten Klassen, ihre Attribute und Methoden sowie die Beziehungen zwischen ihnen. [4]
---
config:
layout: elk
elk:
direction: RIGHT
---
classDiagram
class Game {
+Team team_a
+Team team_b
+Ball ball
+start()
+score_goal(team: Team)
}
class Team {
+String name
+Player[4] players
+u8 score
+add_goal()
}
class Player {
+String name
+Position position
+kick(ball: Ball)
}
class Ball {
+f32 x
+f32 y
+move(direction: Direction)
}
class Position {
<<enumeration>>
GOALKEEPER
DEFENSE
MIDFIELD
ATTACK
}
class Direction {
<<enumeration>>
UP
DOWN
LEFT
RIGHT
}
Game --> Team : has
Game --> Ball : uses
Team --> Player : includes
Player --> Ball : interacts with
Player --> Position : uses
Ball --> Direction : moves in
Das Spiel (Game) verwaltet zwei Teams und einen Ball. Jedes Team besteht aus vier Spielern, die jeweils eine Position (Goalkeeper, Defense, Midfield oder Attack) einnehmen. Ein Spieler kann den Ball treten, der sich dann in eine der vier Richtungen (Direction) bewegt.