Coverage Report

Created: 2025-06-10 13:21

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/bitcoin/src/util/any.h
Line
Count
Source
1
// Copyright (c) 2023 The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef BITCOIN_UTIL_ANY_H
6
#define BITCOIN_UTIL_ANY_H
7
8
#include <any>
9
10
namespace util {
11
12
/**
13
 * Helper function to access the contained object of a std::any instance.
14
 * Returns a pointer to the object if passed instance has a value and the type
15
 * matches, nullptr otherwise.
16
 */
17
template<typename T>
18
T* AnyPtr(const std::any& any) noexcept
19
2.35M
{
20
2.35M
    T* const* ptr = std::any_cast<T*>(&any);
21
2.35M
    return ptr ? *ptr : nullptr;
  Branch (21:12): [True: 2.34M, False: 0]
  Branch (21:12): [True: 11.0k, False: 0]
22
2.35M
}
node::NodeContext* util::AnyPtr<node::NodeContext>(std::any const&)
Line
Count
Source
19
2.34M
{
20
2.34M
    T* const* ptr = std::any_cast<T*>(&any);
21
2.34M
    return ptr ? *ptr : nullptr;
  Branch (21:12): [True: 2.34M, False: 0]
22
2.34M
}
wallet::WalletContext* util::AnyPtr<wallet::WalletContext>(std::any const&)
Line
Count
Source
19
11.0k
{
20
11.0k
    T* const* ptr = std::any_cast<T*>(&any);
21
11.0k
    return ptr ? *ptr : nullptr;
  Branch (21:12): [True: 11.0k, False: 0]
22
11.0k
}
23
24
} // namespace util
25
26
#endif // BITCOIN_UTIL_ANY_H