#![allow(unused)]fnmain() {
/// Time in seconds.////// # Example////// ```/// let s = Second::new(42);/// assert_eq!(42, s.value());/// ```pubstructSecond {
value: u64
}
impl Second {
// Constructs a new instance of [`Second`].// Note this is an associated function - no self.pubfnnew(value: u64) -> Self {
Self { value }
}
/// Returns the value in seconds.pubfnvalue(&self) -> u64 {
self.value
}
}
}
#![allow(unused)]fnmain() {
/// Time in seconds.////// # Example////// ```/// let s = Second::default();/// assert_eq!(0, s.value());/// ```pubstructSecond {
value: u64
}
impl Second {
/// Returns the value in seconds.pubfnvalue(&self) -> u64 {
self.value
}
}
implDefaultfor Second {
fndefault() -> Self {
Self { value: 0 }
}
}
}
如果所有类型的所有字段都实现了Default,也可以派生出Default,就像对Second那样:
#![allow(unused)]fnmain() {
/// Time in seconds.////// # Example////// ```/// let s = Second::default();/// assert_eq!(0, s.value());/// ```#[derive(Default)]pubstructSecond {
value: u64
}
impl Second {
/// Returns the value in seconds.pubfnvalue(&self) -> u64 {
self.value
}
}
}