utls 0.13.10

A simple utilities library for stuff I actually use sometimes, with a large focus on convenience and lack of dependencies.
Documentation
//! Somewhat useless traits

/// Declaration of traits
pub mod decl {
    /// A trait for values which can be empty, providing a constant for that empty representation
    pub trait Empty<T> {
        /// The constant representing the empty value
        const EMPTY: T;
    }
    // A less bad index trait. I *REALLY* hate std::ops:Index for returning a reference. Like??? WHY???!?
    /// Trait providing custom index function
    pub trait Idx<T, O>
    {
        /// Get the value at the specified index
        fn index(&self, idx: T) -> O;
        /// Get the value at the specified index
        fn get(&self, idx: T) -> O
        {
            self.index(idx)
        }
    }
}
/// Implementations of traits declared in `decl` for external types
pub mod imple {
    use super::decl::*;

    impl Empty<&str> for &str {
        const EMPTY: &'static str = "";
    }

    impl Empty<String> for String {
        const EMPTY: String = String::new();
    }

    impl<T> Empty<Option<T>> for Option<T>
    {
        const EMPTY: Option<T> = None;
    }
}