mirror of
https://github.com/rust-lang/rustlings.git
synced 2025-06-19 00:17:42 +02:00
exercises
advanced_errors
clippy
collections
conversions
enums
error_handling
functions
generics
if
intro
macros
modules
move_semantics
option
primitive_types
standard_library_types
strings
structs
README.md
mod.rs
structs1.rs
structs2.rs
structs3.rs
tests
threads
traits
variables
README.md
mod.rs
quiz1.rs
quiz2.rs
quiz3.rs
quiz4.rs
src
tests
.all-contributorsrc
.editorconfig
.gitignore
.gitpod.yml
.replit
AUTHORS.md
CHANGELOG.md
CONTRIBUTING.md
Cargo.lock
Cargo.toml
LICENSE
README.md
info.toml
install.ps1
install.sh
The `watch` command now requires user action to move to the next exercise. BREAKING CHANGE: this changes the behavior of `watch`.
46 lines
915 B
Rust
46 lines
915 B
Rust
// structs1.rs
|
|
// Address all the TODOs to make the tests pass!
|
|
|
|
// I AM NOT DONE
|
|
|
|
struct ColorClassicStruct {
|
|
// TODO: Something goes here
|
|
}
|
|
|
|
struct ColorTupleStruct(/* TODO: Something goes here */);
|
|
|
|
#[derive(Debug)]
|
|
struct UnitStruct;
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn classic_c_structs() {
|
|
// TODO: Instantiate a classic c struct!
|
|
// let green =
|
|
|
|
assert_eq!(green.name, "green");
|
|
assert_eq!(green.hex, "#00FF00");
|
|
}
|
|
|
|
#[test]
|
|
fn tuple_structs() {
|
|
// TODO: Instantiate a tuple struct!
|
|
// let green =
|
|
|
|
assert_eq!(green.0, "green");
|
|
assert_eq!(green.1, "#00FF00");
|
|
}
|
|
|
|
#[test]
|
|
fn unit_structs() {
|
|
// TODO: Instantiate a unit struct!
|
|
// let unit_struct =
|
|
let message = format!("{:?}s are fun!", unit_struct);
|
|
|
|
assert_eq!(message, "UnitStructs are fun!");
|
|
}
|
|
}
|