Tidying Up Decodable Initialisers

Swift's type inference lets us remove the need to specify the type with every call to decodable šŸ„³

internal extension KeyedDecodingContainer
{
    internal func decode<T: Decodable>(_ key: KeyedDecodingContainer<K>.Key) throws -> T
    {
        return try self.decode(T.self, forKey: key)
    }
    
    internal func decodeIfPresent<T: Decodable>(_ key: KeyedDecodingContainer<K>.Key) throws -> T?
    {
        return try self.decodeIfPresent(T.self, forKey: key)
    }
}