init
This commit is contained in:
parent
9ab6ccccb2
commit
bac5b0d34b
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -14,3 +14,8 @@ Cargo.lock
|
||||||
# MSVC Windows builds of rustc generate these, which store debugging information
|
# MSVC Windows builds of rustc generate these, which store debugging information
|
||||||
*.pdb
|
*.pdb
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Added by cargo
|
||||||
|
|
||||||
|
/target
|
||||||
|
|
12
Cargo.toml
Normal file
12
Cargo.toml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
[package]
|
||||||
|
name = "webhook-test"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
chrono = "0.4.30"
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
chrono = "0.4.30"
|
36
src/main.rs
Normal file
36
src/main.rs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
use chrono::Datelike;
|
||||||
|
|
||||||
|
pub struct User<'a> {
|
||||||
|
name: &'a str,
|
||||||
|
dob: u32,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> User<'a> {
|
||||||
|
pub fn new(name: &'a str, dob: u32) -> User<'a> {
|
||||||
|
User { name, dob }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn age(&self) -> u32 {
|
||||||
|
let current_year = chrono::Utc::now().year() as u32;
|
||||||
|
current_year - self.dob
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let user = User::new("Anh Nguyen", 1999);
|
||||||
|
|
||||||
|
println!("User name: {}", user.name);
|
||||||
|
println!("User age: {}", user.age());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_user_age() {
|
||||||
|
let user = User::new("Test User", 2000);
|
||||||
|
let age = user.age();
|
||||||
|
assert_eq!(age, 23); // Adjust the expected age based on the current year
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user