diff options
| author | liv <mokou@fastmail.com> | 2024-03-15 14:36:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-15 14:36:23 +0100 |
| commit | 76acf613c5481bf7bb44d290b7fb340e71e9faad (patch) | |
| tree | 534cbad29caa892d4026ec593491d05cde541e15 | |
| parent | bcb192c707009ab9d9bb06812cb09b9d446ccc11 (diff) | |
| parent | 2966a29449e17eace182c225b3af23fa43af3799 (diff) | |
Merge branch 'main' into main
| -rw-r--r-- | .all-contributorsrc | 81 | ||||
| -rw-r--r-- | .devcontainer/devcontainer.json | 19 | ||||
| -rwxr-xr-x | .devcontainer/setup.sh | 7 | ||||
| -rw-r--r-- | .gitattributes | 2 | ||||
| -rw-r--r-- | AUTHORS.md | 11 | ||||
| -rw-r--r-- | CHANGELOG.md | 2 | ||||
| -rw-r--r-- | Cargo.lock | 4 | ||||
| -rw-r--r-- | exercises/11_hashmaps/hashmaps3.rs | 9 | ||||
| -rw-r--r-- | exercises/23_conversions/from_into.rs | 16 | ||||
| -rw-r--r-- | info.toml | 4 | ||||
| -rwxr-xr-x | install.sh | 2 | ||||
| -rw-r--r-- | src/ui.rs | 29 |
12 files changed, 130 insertions, 56 deletions
diff --git a/.all-contributorsrc b/.all-contributorsrc index cc26876..7d26d4c 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -2559,6 +2559,87 @@ "contributions": [ "content" ] + }, + { + "login": "AnonimAnonim2245", + "name": "Luca Plian", + "avatar_url": "https://avatars.githubusercontent.com/u/98339220?v=4", + "profile": "https://github.com/AnonimAnonim2245", + "contributions": [ + "code" + ] + }, + { + "login": "reifenrath-dev", + "name": "RenΓ© Reifenrath", + "avatar_url": "https://avatars.githubusercontent.com/u/18126097?v=4", + "profile": "https://reifenrath.dev/", + "contributions": [ + "content" + ] + }, + { + "login": "peterneave", + "name": "Peter Neave", + "avatar_url": "https://avatars.githubusercontent.com/u/7982708?v=4", + "profile": "https://github.com/peterneave", + "contributions": [ + "infra" + ] + }, + { + "login": "JanB1", + "name": "Jan", + "avatar_url": "https://avatars.githubusercontent.com/u/5552248?v=4", + "profile": "http://www.janb1.com", + "contributions": [ + "content" + ] + }, + { + "login": "kylev", + "name": "Kyle VanderBeek", + "avatar_url": "https://avatars.githubusercontent.com/u/46888?v=4", + "profile": "http://www.kylev.com/", + "contributions": [ + "infra" + ] + }, + { + "login": "pavedroad", + "name": "pavedroad", + "avatar_url": "https://avatars.githubusercontent.com/u/138004431?v=4", + "profile": "https://github.com/pavedroad", + "contributions": [ + "content" + ] + }, + { + "login": "hyphena", + "name": "luna", + "avatar_url": "https://avatars.githubusercontent.com/u/26529488?v=4", + "profile": "https://github.com/hyphena", + "contributions": [ + "content" + ] + }, + { + "login": "evanmiller2112", + "name": "Evan Miller", + "avatar_url": "https://avatars.githubusercontent.com/u/28488957?v=4", + "profile": "https://github.com/evanmiller2112", + "contributions": [ + "content" + ] + }, + { + "login": "luvchurchill", + "name": "luvchurchill", + "avatar_url": "https://avatars.githubusercontent.com/u/46406654?v=4", + "profile": "https://github.com/luvchurchill", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 8, diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e1b2cec..f25e8bd 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,17 +1,8 @@ { - "image": "mcr.microsoft.com/devcontainers/universal:2-linux", - "waitFor": "onCreateCommand", - "onCreateCommand": ".devcontainer/setup.sh", - "updateContentCommand": "cargo build", - "postCreateCommand": "", - "postAttachCommand": { - "server": "rustlings watch" - }, - "customizations": { - "vscode": { - "extensions": [ - "rust-lang.rust-analyzer" - ] - } + "image": "mcr.microsoft.com/devcontainers/rust:1", + "updateContentCommand": ["cargo", "build"], + "postAttachCommand": ["rustlings", "watch"], + "remoteEnv": { + "PATH": "${containerEnv:PATH}:${containerWorkspaceFolder}/target/debug" } } diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh deleted file mode 100755 index 0e090a8..0000000 --- a/.devcontainer/setup.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -curl https://sh.rustup.rs -sSf | sh -s -- -y - -# Update current shell environment variables after install to find rustup -. "$HOME/.cargo/env" -rustup install stable -bash install.sh diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..efdba87 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* text=auto +*.sh text eol=lf @@ -362,6 +362,17 @@ authors. </tr> <tr> <td align="center" valign="top" width="12.5%"><a href="https://github.com/gerases"><img src="https://avatars.githubusercontent.com/u/8953623?v=4?s=100" width="100px;" alt="gerases"/><br /><sub><b>gerases</b></sub></a><br /><a href="#content-gerases" title="Content">π</a></td> + <td align="center" valign="top" width="12.5%"><a href="https://github.com/AnonimAnonim2245"><img src="https://avatars.githubusercontent.com/u/98339220?v=4?s=100" width="100px;" alt="Luca Plian"/><br /><sub><b>Luca Plian</b></sub></a><br /><a href="https://github.com/rust-lang/rustlings/commits?author=AnonimAnonim2245" title="Code">π»</a></td> + <td align="center" valign="top" width="12.5%"><a href="https://reifenrath.dev/"><img src="https://avatars.githubusercontent.com/u/18126097?v=4?s=100" width="100px;" alt="RenΓ© Reifenrath"/><br /><sub><b>RenΓ© Reifenrath</b></sub></a><br /><a href="#content-reifenrath-dev" title="Content">π</a></td> + <td align="center" valign="top" width="12.5%"><a href="https://github.com/peterneave"><img src="https://avatars.githubusercontent.com/u/7982708?v=4?s=100" width="100px;" alt="Peter Neave"/><br /><sub><b>Peter Neave</b></sub></a><br /><a href="#infra-peterneave" title="Infrastructure (Hosting, Build-Tools, etc)">π</a></td> + <td align="center" valign="top" width="12.5%"><a href="http://www.janb1.com"><img src="https://avatars.githubusercontent.com/u/5552248?v=4?s=100" width="100px;" alt="Jan"/><br /><sub><b>Jan</b></sub></a><br /><a href="#content-JanB1" title="Content">π</a></td> + <td align="center" valign="top" width="12.5%"><a href="http://www.kylev.com/"><img src="https://avatars.githubusercontent.com/u/46888?v=4?s=100" width="100px;" alt="Kyle VanderBeek"/><br /><sub><b>Kyle VanderBeek</b></sub></a><br /><a href="#infra-kylev" title="Infrastructure (Hosting, Build-Tools, etc)">π</a></td> + <td align="center" valign="top" width="12.5%"><a href="https://github.com/pavedroad"><img src="https://avatars.githubusercontent.com/u/138004431?v=4?s=100" width="100px;" alt="pavedroad"/><br /><sub><b>pavedroad</b></sub></a><br /><a href="#content-pavedroad" title="Content">π</a></td> + <td align="center" valign="top" width="12.5%"><a href="https://github.com/hyphena"><img src="https://avatars.githubusercontent.com/u/26529488?v=4?s=100" width="100px;" alt="luna"/><br /><sub><b>luna</b></sub></a><br /><a href="#content-hyphena" title="Content">π</a></td> + </tr> + <tr> + <td align="center" valign="top" width="12.5%"><a href="https://github.com/evanmiller2112"><img src="https://avatars.githubusercontent.com/u/28488957?v=4?s=100" width="100px;" alt="Evan Miller"/><br /><sub><b>Evan Miller</b></sub></a><br /><a href="#content-evanmiller2112" title="Content">π</a></td> + <td align="center" valign="top" width="12.5%"><a href="https://github.com/luvchurchill"><img src="https://avatars.githubusercontent.com/u/46406654?v=4?s=100" width="100px;" alt="luvchurchill"/><br /><sub><b>luvchurchill</b></sub></a><br /><a href="https://github.com/rust-lang/rustlings/commits?author=luvchurchill" title="Code">π»</a></td> </tr> </tbody> </table> diff --git a/CHANGELOG.md b/CHANGELOG.md index a7226a4..a199e4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -167,7 +167,7 @@ - **structs3**: Clarifed the hint - **quiz2, as_ref_mut, options1, traits1, traits2**: Clarified hints - **traits1, traits2, cli**: Tidied up unmatching backticks -- **enums2**: Removed unneccessary indirection of self +- **enums2**: Removed unnecessary indirection of self - **enums3**: Added an extra tuple comment #### Housekeeping @@ -390,9 +390,9 @@ checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" [[package]] name = "mio" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "log", diff --git a/exercises/11_hashmaps/hashmaps3.rs b/exercises/11_hashmaps/hashmaps3.rs index 36544ee..8d9236d 100644 --- a/exercises/11_hashmaps/hashmaps3.rs +++ b/exercises/11_hashmaps/hashmaps3.rs @@ -4,10 +4,11 @@ // the form : "<team_1_name>,<team_2_name>,<team_1_goals>,<team_2_goals>" // Example: England,France,4,2 (England scored 4 goals, France 2). // -// You have to build a scores table containing the name of the team, goals the -// team scored, and goals the team conceded. One approach to build the scores -// table is to use a Hashmap. The solution is partially written to use a -// Hashmap, complete it to pass the test. +// You have to build a scores table containing the name of the team, the total +// number of goals the team scored, and the total number of goals the team +// conceded. One approach to build the scores table is to use a Hashmap. +// The solution is partially written to use a Hashmap, +// complete it to pass the test. // // Make me pass the tests! // diff --git a/exercises/23_conversions/from_into.rs b/exercises/23_conversions/from_into.rs index 00f8c2f..11787c3 100644 --- a/exercises/23_conversions/from_into.rs +++ b/exercises/23_conversions/from_into.rs @@ -24,7 +24,8 @@ impl Default for Person { } } -// Your task is to complete this implementation in order for the line `let p = + +// Your task is to complete this implementation in order for the line `let p1 = // Person::from("Mark,20")` to compile. Please note that you'll need to parse the // age component into a `usize` with something like `"4".parse::<usize>()`. The // outcome of this needs to be handled appropriately. @@ -43,8 +44,7 @@ impl Default for Person { // I AM NOT DONE impl From<&str> for Person { - fn from(s: &str) -> Person { - } + fn from(s: &str) -> Person {} } fn main() { @@ -127,14 +127,14 @@ mod tests { #[test] fn test_trailing_comma() { let p: Person = Person::from("Mike,32,"); - assert_eq!(p.name, "Mike"); - assert_eq!(p.age, 32); + assert_eq!(p.name, "John"); + assert_eq!(p.age, 30); } #[test] fn test_trailing_comma_and_some_string() { - let p: Person = Person::from("Mike,32,man"); - assert_eq!(p.name, "Mike"); - assert_eq!(p.age, 32); + let p: Person = Person::from("Mike,32,dog"); + assert_eq!(p.name, "John"); + assert_eq!(p.age, 30); } } @@ -145,7 +145,7 @@ after the `->`. This is where the function's return type should be -- take a look at the `is_even` function for an example! Also: Did you figure out that, technically, `u32` would be the more fitting type -for the prices here, since they can't be negative? If so, kudos!""" +for the inputs of the functions here, since the original prices shouldn't be negative? If so, kudos!""" [[exercises]] name = "functions5" @@ -248,7 +248,7 @@ starting and ending (plus one) indices of the items in the `Array` that you want to end up in the slice. If you're curious why the first argument of `assert_eq!` does not have an -ampersand for a reference since the second argument is areference, take a look +ampersand for a reference since the second argument is a reference, take a look at the coercion chapter of the nomicon: https://doc.rust-lang.org/nomicon/coercions.html""" @@ -137,7 +137,7 @@ fi Path=${1:-rustlings/} echo "Cloning Rustlings at $Path..." -git clone -q https://github.com/rust-lang/rustlings "$Path" +git clone -q https://github.com/rust-lang/rustlings.git "$Path" cd "$Path" @@ -1,33 +1,28 @@ -macro_rules! warn { - ($fmt:literal, $ex:expr) => {{ +macro_rules! print_emoji { + ($emoji:expr, $sign:expr, $color: ident ,$fmt:literal, $ex:expr) => {{ use console::{style, Emoji}; use std::env; let formatstr = format!($fmt, $ex); if env::var("NO_EMOJI").is_ok() { - println!("{} {}", style("!").red(), style(formatstr).red()); + println!("{} {}", style($sign).$color(), style(formatstr).$color()); } else { println!( "{} {}", - style(Emoji("β οΈ ", "!")).red(), - style(formatstr).red() + style(Emoji($emoji, $sign)).$color(), + style(formatstr).$color() ); } }}; } +macro_rules! warn { + ($fmt:literal, $ex:expr) => {{ + print_emoji!("β οΈ ", "!", red, $fmt, $ex); + }}; +} + macro_rules! success { ($fmt:literal, $ex:expr) => {{ - use console::{style, Emoji}; - use std::env; - let formatstr = format!($fmt, $ex); - if env::var("NO_EMOJI").is_ok() { - println!("{} {}", style("β").green(), style(formatstr).green()); - } else { - println!( - "{} {}", - style(Emoji("β
", "β")).green(), - style(formatstr).green() - ); - } + print_emoji!("β
", "β", green, $fmt, $ex); }}; } |
