Coverage Report

Created: 2026-05-16 07:03

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/AK/SinglyLinkedListSizePolicy.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2022, the SerenityOS developers.
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#pragma once
8
9
#include <AK/Types.h>
10
11
namespace AK {
12
13
struct DefaultSizeCalculationPolicy {
14
0
    constexpr void increase_size(auto const&) { }
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::increase_size<JS::FinalizationRegistry::FinalizationRecord>(JS::FinalizationRegistry::FinalizationRecord const&)
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::increase_size<JS::NonnullGCPtr<Web::Streams::ReadRequest> >(JS::NonnullGCPtr<Web::Streams::ReadRequest> const&)
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::increase_size<Web::Streams::PullIntoDescriptor>(Web::Streams::PullIntoDescriptor const&)
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::increase_size<Web::Streams::ValueWithSize>(Web::Streams::ValueWithSize const&)
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::increase_size<Web::Streams::ReadableByteStreamQueueEntry>(Web::Streams::ReadableByteStreamQueueEntry const&)
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::increase_size<JS::NonnullGCPtr<JS::PromiseCapability> >(JS::NonnullGCPtr<JS::PromiseCapability> const&)
15
16
0
    constexpr void decrease_size(auto const&) { }
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::decrease_size<JS::FinalizationRegistry::FinalizationRecord>(JS::FinalizationRegistry::FinalizationRecord const&)
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::decrease_size<JS::NonnullGCPtr<Web::Streams::ReadRequest> >(JS::NonnullGCPtr<Web::Streams::ReadRequest> const&)
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::decrease_size<Web::Streams::ReadableByteStreamQueueEntry>(Web::Streams::ReadableByteStreamQueueEntry const&)
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::decrease_size<Web::Streams::PullIntoDescriptor>(Web::Streams::PullIntoDescriptor const&)
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::decrease_size<JS::NonnullGCPtr<JS::PromiseCapability> >(JS::NonnullGCPtr<JS::PromiseCapability> const&)
Unexecuted instantiation: void AK::DefaultSizeCalculationPolicy::decrease_size<Web::Streams::ValueWithSize>(Web::Streams::ValueWithSize const&)
17
18
0
    constexpr void reset() { }
19
20
    constexpr size_t size(auto const* head) const
21
0
    {
22
0
        size_t size = 0;
23
0
        for (auto* node = head; node; node = node->next)
24
0
            ++size;
25
0
        return size;
26
0
    }
27
};
28
29
struct CountingSizeCalculationPolicy {
30
    constexpr void increase_size(auto const&) { ++m_size; }
31
32
    constexpr void decrease_size(auto const&) { --m_size; }
33
34
0
    constexpr void reset() { m_size = 0; }
35
36
    constexpr size_t size(auto const*) const { return m_size; }
37
38
private:
39
    size_t m_size { 0 };
40
};
41
42
}
43
44
#ifdef USING_AK_GLOBALLY
45
using AK::CountingSizeCalculationPolicy;
46
using AK::DefaultSizeCalculationPolicy;
47
#endif