use crate::{Map, Set};
pub trait ShouldSkip {
fn should_skip(&self) -> bool {
false
}
fn should_keep(&self) -> bool {
!self.should_skip()
}
}
impl ShouldSkip for String {
fn should_skip(&self) -> bool {
self.trim().is_empty()
}
}
impl ShouldSkip for str {
fn should_skip(&self) -> bool {
self.trim().is_empty()
}
}
impl ShouldSkip for &str {
fn should_skip(&self) -> bool {
self.trim().is_empty()
}
}
impl<T> ShouldSkip for Option<T> {
fn should_skip(&self) -> bool {
self.is_none()
}
}
impl<T> ShouldSkip for &Option<T> {
fn should_skip(&self) -> bool {
self.is_none()
}
}
impl<T> ShouldSkip for Vec<T> {
fn should_skip(&self) -> bool {
self.is_empty()
}
}
impl<T> ShouldSkip for Set<T> {
fn should_skip(&self) -> bool {
self.is_empty()
}
}
impl<T> ShouldSkip for &Set<T> {
fn should_skip(&self) -> bool {
self.is_empty()
}
}
impl<T> ShouldSkip for &[T] {
fn should_skip(&self) -> bool {
self.is_empty()
}
}
impl<K, V> ShouldSkip for Map<K, V> {
fn should_skip(&self) -> bool {
self.is_empty()
}
}
impl<K, V> ShouldSkip for &Map<K, V> {
fn should_skip(&self) -> bool {
self.is_empty()
}
}