pub trait INotEmpty {
fn not_empty(&self) -> bool;
}
impl INotEmpty for String {
fn not_empty(&self) -> bool {
!self.is_empty()
}
}
impl INotEmpty for str {
fn not_empty(&self) -> bool {
!self.is_empty()
}
}
impl INotEmpty for Option<String> {
fn not_empty(&self) -> bool {
match self {
None => false,
Some(v) => !v.is_empty(),
}
}
}
impl INotEmpty for Option<&str> {
fn not_empty(&self) -> bool {
match self {
None => false,
Some(v) => !v.is_empty(),
}
}
}
impl INotEmpty for Option<&String> {
fn not_empty(&self) -> bool {
match self {
None => false,
Some(v) => !v.is_empty(),
}
}
}
impl<T> INotEmpty for Option<Vec<T>> {
fn not_empty(&self) -> bool {
match self {
None => false,
Some(v) => !v.is_empty(),
}
}
}
impl<T> INotEmpty for Vec<T> {
fn not_empty(&self) -> bool {
!self.is_empty()
}
}
impl<T> INotEmpty for Option<&[T]> {
fn not_empty(&self) -> bool {
match self {
None => false,
Some(v) => !v.is_empty(),
}
}
}
impl<T> INotEmpty for &[T] {
fn not_empty(&self) -> bool {
!self.is_empty()
}
}