AK: Mark some Span functions with [[nodiscard]]

I was confused by the trim() API, thinking it would mutate the span it
was called on. Mark all const functions that return a new span with
[[nodiscard]] so we can catch such mistakes.
This commit is contained in:
Andreas Kling 2020-12-19 18:13:36 +01:00
parent a8dbfc3398
commit 050eb5afa8
Notes: sideshowbarker 2024-07-19 00:44:21 +09:00

View file

@ -134,18 +134,18 @@ public:
ALWAYS_INLINE constexpr bool is_null() const { return this->m_values == nullptr; }
ALWAYS_INLINE constexpr bool is_empty() const { return this->m_size == 0; }
ALWAYS_INLINE constexpr Span slice(size_t start, size_t length) const
[[nodiscard]] ALWAYS_INLINE constexpr Span slice(size_t start, size_t length) const
{
ASSERT(start + length <= size());
return { this->m_values + start, length };
}
ALWAYS_INLINE constexpr Span slice(size_t start) const
[[nodiscard]] ALWAYS_INLINE constexpr Span slice(size_t start) const
{
ASSERT(start <= size());
return { this->m_values + start, size() - start };
}
ALWAYS_INLINE constexpr Span trim(size_t length) const
[[nodiscard]] ALWAYS_INLINE constexpr Span trim(size_t length) const
{
return { this->m_values, min(size(), length) };
}