Coverage Report

Created: 2026-06-17 15:31

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/tmp/bitcoin/src/util/any.h
Line
Count
Source
1
// Copyright (c) 2023-present 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
203k
{
20
203k
    T* const* ptr = std::any_cast<T*>(&any);
21
203k
    return ptr ? *ptr : nullptr;
22
203k
}
node::NodeContext* util::AnyPtr<node::NodeContext>(std::any const&)
Line
Count
Source
19
178k
{
20
178k
    T* const* ptr = std::any_cast<T*>(&any);
21
178k
    return ptr ? *ptr : nullptr;
22
178k
}
wallet::WalletContext* util::AnyPtr<wallet::WalletContext>(std::any const&)
Line
Count
Source
19
24.9k
{
20
24.9k
    T* const* ptr = std::any_cast<T*>(&any);
21
24.9k
    return ptr ? *ptr : nullptr;
22
24.9k
}
23
24
} // namespace util
25
26
#endif // BITCOIN_UTIL_ANY_H