Render the book in PDF using pandoc and LaTeX. (#126)
* Render the book in PDF using `pandoc` and LaTeX. * Fix installs. * Go the apt-get route * Another attempt * Avoid installing twice. * Re-order. * Add more packages. * Minimise deps. Fix link checker. * Missing package. * Missing package. * Missing package. * More packages. * Missing package. * Missing package. * More packages... * Remove. * Fix link checker. * Fix link checker. * Fix path. * Add subtitle. * Avoid running over the right margin. * Avoid running over the right margin. * Formatting
This commit is contained in:
@@ -14,7 +14,11 @@ pub struct Ticket {
|
||||
}
|
||||
|
||||
impl Ticket {
|
||||
pub fn new(title: String, description: String, status: String) -> Self {
|
||||
pub fn new(
|
||||
title: String,
|
||||
description: String,
|
||||
status: String
|
||||
) -> Self {
|
||||
// [...]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,10 @@ impl Ticket {
|
||||
match &self.status {
|
||||
Status::InProgress { assigned_to } => assigned_to,
|
||||
Status::Done | Status::ToDo => {
|
||||
panic!("Only `In-Progress` tickets can be assigned to someone")
|
||||
panic!(
|
||||
"Only `In-Progress` tickets can be \
|
||||
assigned to someone"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,7 +36,9 @@ impl Ticket {
|
||||
if let Status::InProgress { assigned_to } = &self.status {
|
||||
assigned_to
|
||||
} else {
|
||||
panic!("Only `In-Progress` tickets can be assigned to someone");
|
||||
panic!(
|
||||
"Only `In-Progress` tickets can be assigned to someone"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,7 +53,9 @@ you can use the `let/else` construct:
|
||||
impl Ticket {
|
||||
pub fn assigned_to(&self) -> &str {
|
||||
let Status::InProgress { assigned_to } = &self.status else {
|
||||
panic!("Only `In-Progress` tickets can be assigned to someone");
|
||||
panic!(
|
||||
"Only `In-Progress` tickets can be assigned to someone"
|
||||
);
|
||||
};
|
||||
assigned_to
|
||||
}
|
||||
|
||||
@@ -4,7 +4,11 @@ Let's revisit the `Ticket::new` function from the previous exercise:
|
||||
|
||||
```rust
|
||||
impl Ticket {
|
||||
pub fn new(title: String, description: String, status: Status) -> Ticket {
|
||||
pub fn new(
|
||||
title: String,
|
||||
description: String,
|
||||
status: Status
|
||||
) -> Ticket {
|
||||
if title.is_empty() {
|
||||
panic!("Title cannot be empty");
|
||||
}
|
||||
@@ -70,8 +74,9 @@ Rust, with `Result`, forces you to **encode fallibility in the function's signat
|
||||
If a function can fail (and you want the caller to have a shot at handling the error), it must return a `Result`.
|
||||
|
||||
```rust
|
||||
// Just by looking at the signature, you know that this function can fail.
|
||||
// You can also inspect `ParseIntError` to see what kind of failures to expect.
|
||||
// Just by looking at the signature, you know that this function
|
||||
// can fail. You can also inspect `ParseIntError` to see what
|
||||
// kind of failures to expect.
|
||||
fn parse_int(s: &str) -> Result<i32, ParseIntError> {
|
||||
// ...
|
||||
}
|
||||
|
||||
@@ -14,8 +14,8 @@ fn parse_int(s: &str) -> Result<i32, ParseIntError> {
|
||||
}
|
||||
|
||||
// This won't compile: we're not handling the error case.
|
||||
// We must either use `match` or one of the combinators provided by `Result`
|
||||
// to "unwrap" the success value or handle the error.
|
||||
// We must either use `match` or one of the combinators provided by
|
||||
// `Result` to "unwrap" the success value or handle the error.
|
||||
let number = parse_int("42") + 2;
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user