#![forbid(unsafe_code)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
pub struct Empty {}
pub const EMPTY: Empty = Empty {};
pub trait EmptyExt {
#[allow(clippy::new_ret_no_self)]
fn new() -> Empty;
}
impl EmptyExt for Empty {
fn new() -> Empty {
Empty {}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn empty_const_accessible() {
let _ = EMPTY;
}
#[test]
fn new_equals_const() {
assert_eq!(Empty::new(), EMPTY);
}
#[test]
fn empty_is_default() {
assert_eq!(Empty::default(), EMPTY);
}
}