blob: fcfb923261d16899ba32ff94523a09cb7cf9031f [file] [log] [blame] [edit]
//! Legacy tests from 0.0.7 version.
use derive_getters::Getters;
#[derive(Getters)]
struct Number {
num: u64,
}
fn number_num() {
let number = Number { num: 655 };
assert!(number.num() == &655);
}
#[derive(Getters)]
struct ManyNumbers {
integer: u64,
floating: f64,
byte: u8,
}
fn many_numbers() {
let numbers = ManyNumbers {
integer: 655,
floating: 45.5,
byte: 122,
};
assert!(numbers.integer() == &655);
assert!(numbers.floating() == &45.5);
assert!(numbers.byte() == &122);
}
#[derive(Getters)]
struct Textual {
author: Option<String>,
heading: String,
lines: Vec<String>,
}
fn textual_struct() {
let article = Textual {
author: None,
heading: "abcdefg".to_string(),
lines: vec![
"hijk".to_string(),
"lmno".to_string(),
"pqrs".to_string(),
"tuvw".to_string(),
],
};
assert!(article.author() == &None);
assert!(article.heading() == "abcdefg");
assert!(article.lines().len() == 4);
assert!(article.lines()[0] == "hijk");
assert!(article.lines()[1] == "lmno");
assert!(article.lines()[2] == "pqrs");
assert!(article.lines()[3] == "tuvw");
let book = Textual {
author: Some("name".to_string()),
heading: "1234".to_string(),
lines: vec![
"2345".to_string(),
"3456".to_string(),
"4567".to_string(),
"5678".to_string(),
],
};
assert!(book.author() == &Some("name".to_string()));
}
/// There shouldn't be any dead code warnings on unused methods, only on unused slots which
/// are not the libraries fault.
#[derive(Getters)]
struct DeadCode {
x: u64,
y: u64,
z: u64,
}
#[test]
fn dead_code_struct() {
let dc = DeadCode {
x: 1,
y: 2,
z: 3,
};
assert!(*dc.x() == 1);
}
fn main() {
number_num();
many_numbers();
textual_struct();
}