BAN: Make ErrorOr<> have attribute [[nodiscard]]

We don't have to specify it everytime we make function return ErrorOr
This commit is contained in:
Bananymous 2023-02-19 20:10:30 +02:00
parent feaeee11e5
commit 247f03c79e
8 changed files with 37 additions and 37 deletions

View File

@ -38,7 +38,7 @@ namespace BAN
};
template<typename T>
class ErrorOr
class [[nodiscard]] ErrorOr
{
public:
ErrorOr(const T& value) : m_has_error(false) { m_data = (void*)new T(value); }
@ -56,7 +56,7 @@ namespace BAN
};
template<>
class ErrorOr<void>
class [[nodiscard]] ErrorOr<void>
{
public:
ErrorOr() { }

View File

@ -28,8 +28,8 @@ namespace BAN
HashSet<T, HASH>& operator=(const HashSet<T, HASH>&);
HashSet<T, HASH>& operator=(HashSet<T, HASH>&&);
[[nodiscard]] ErrorOr<void> insert(const T&);
[[nodiscard]] ErrorOr<void> insert(T&&);
ErrorOr<void> insert(const T&);
ErrorOr<void> insert(T&&);
void remove(const T&);
void clear();
@ -42,7 +42,7 @@ namespace BAN
bool empty() const;
private:
[[nodiscard]] ErrorOr<void> rebucket(size_type);
ErrorOr<void> rebucket(size_type);
Vector<T>& get_bucket(const T&);
const Vector<T>& get_bucket(const T&) const;

View File

@ -28,14 +28,14 @@ namespace BAN
LinkedList<T>& operator=(const LinkedList<T>&);
LinkedList<T>& operator=(LinkedList<T>&&);
[[nodiscard]] ErrorOr<void> push_back(const T&);
[[nodiscard]] ErrorOr<void> push_back(T&&);
[[nodiscard]] ErrorOr<void> insert(iterator, const T&);
[[nodiscard]] ErrorOr<void> insert(iterator, T&&);
ErrorOr<void> push_back(const T&);
ErrorOr<void> push_back(T&&);
ErrorOr<void> insert(iterator, const T&);
ErrorOr<void> insert(iterator, T&&);
template<typename... Args>
[[nodiscard]] ErrorOr<void> emplace_back(Args&&...);
ErrorOr<void> emplace_back(Args&&...);
template<typename... Args>
[[nodiscard]] ErrorOr<void> emplace(iterator, Args&&...);
ErrorOr<void> emplace(iterator, Args&&...);
void pop_back();
void remove(iterator);
@ -64,7 +64,7 @@ namespace BAN
Node* prev;
};
[[nodiscard]] ErrorOr<Node*> allocate_node() const;
ErrorOr<Node*> allocate_node() const;
Node* m_data = nullptr;
Node* m_last = nullptr;

View File

@ -24,10 +24,10 @@ namespace BAN
Queue<T>& operator=(Queue<T>&&);
Queue<T>& operator=(const Queue<T>&);
[[nodiscard]] ErrorOr<void> push(T&&);
[[nodiscard]] ErrorOr<void> push(const T&);
ErrorOr<void> push(T&&);
ErrorOr<void> push(const T&);
template<typename... Args>
[[nodiscard]] ErrorOr<void> emplace(Args&&...);
ErrorOr<void> emplace(Args&&...);
void pop();
void clear();
@ -39,7 +39,7 @@ namespace BAN
T& front();
private:
[[nodiscard]] ErrorOr<void> ensure_capacity(size_type size);
ErrorOr<void> ensure_capacity(size_type size);
private:
T* m_data = nullptr;

View File

@ -25,11 +25,11 @@ namespace BAN
String& operator=(String&&);
String& operator=(StringView);
[[nodiscard]] ErrorOr<void> push_back(char);
[[nodiscard]] ErrorOr<void> insert(char, size_type);
[[nodiscard]] ErrorOr<void> insert(StringView, size_type);
[[nodiscard]] ErrorOr<void> append(StringView);
[[nodiscard]] ErrorOr<void> append(const String&);
ErrorOr<void> push_back(char);
ErrorOr<void> insert(char, size_type);
ErrorOr<void> insert(StringView, size_type);
ErrorOr<void> append(StringView);
ErrorOr<void> append(const String&);
void pop_back();
void remove(size_type);
@ -44,8 +44,8 @@ namespace BAN
bool operator==(StringView) const;
bool operator==(const char*) const;
[[nodiscard]] ErrorOr<void> resize(size_type, char = '\0');
[[nodiscard]] ErrorOr<void> reserve(size_type);
ErrorOr<void> resize(size_type, char = '\0');
ErrorOr<void> reserve(size_type);
StringView sv() const;
@ -56,9 +56,9 @@ namespace BAN
const char* data() const;
private:
[[nodiscard]] ErrorOr<void> ensure_capacity(size_type);
ErrorOr<void> ensure_capacity(size_type);
[[nodiscard]] ErrorOr<void> copy_impl(StringView);
ErrorOr<void> copy_impl(StringView);
void move_impl(String&&);
private:

View File

@ -24,8 +24,8 @@ namespace BAN
StringView substring(size_type, size_type = -1) const;
[[nodiscard]] ErrorOr<Vector<StringView>> split(char, bool = false);
[[nodiscard]] ErrorOr<Vector<StringView>> split(bool(*comp)(char), bool = false);
ErrorOr<Vector<StringView>> split(char, bool = false);
ErrorOr<Vector<StringView>> split(bool(*comp)(char), bool = false);
char back() const;
char front() const;

View File

@ -31,14 +31,14 @@ namespace BAN
Vector<T>& operator=(Vector<T>&&);
Vector<T>& operator=(const Vector<T>&);
[[nodiscard]] ErrorOr<void> push_back(T&&);
[[nodiscard]] ErrorOr<void> push_back(const T&);
ErrorOr<void> push_back(T&&);
ErrorOr<void> push_back(const T&);
template<typename... Args>
[[nodiscard]] ErrorOr<void> emplace_back(Args&&...);
ErrorOr<void> emplace_back(Args&&...);
template<typename... Args>
[[nodiscard]] ErrorOr<void> emplace(size_type, Args&&...);
[[nodiscard]] ErrorOr<void> insert(size_type, T&&);
[[nodiscard]] ErrorOr<void> insert(size_type, const T&);
ErrorOr<void> emplace(size_type, Args&&...);
ErrorOr<void> insert(size_type, T&&);
ErrorOr<void> insert(size_type, const T&);
iterator begin() { return iterator (m_data); }
const_iterator begin() const { return const_iterator(m_data); }
@ -62,15 +62,15 @@ namespace BAN
const T& front() const;
T& front();
[[nodiscard]] ErrorOr<void> resize(size_type);
[[nodiscard]] ErrorOr<void> reserve(size_type);
ErrorOr<void> resize(size_type);
ErrorOr<void> reserve(size_type);
bool empty() const;
size_type size() const;
size_type capacity() const;
private:
[[nodiscard]] ErrorOr<void> ensure_capacity(size_type);
ErrorOr<void> ensure_capacity(size_type);
private:
T* m_data = nullptr;

View File

@ -19,7 +19,7 @@ namespace Kernel
const Thread& current_thread() const;
template<typename... Args>
[[nodiscard]] BAN::ErrorOr<void> add_thread(const BAN::Function<void(Args...)>& func, Args... args)
BAN::ErrorOr<void> add_thread(const BAN::Function<void(Args...)>& func, Args... args)
{
uintptr_t flags;
asm volatile("pushf; pop %0" : "=r"(flags));