summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/assert/assert.cpp
blob: 2329a5118dbda446e677ea4fa8341cacdd804ea6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "assert.h"

#include <util/system/yassert.h>
#include <util/system/compiler.h>

namespace NYT::NDetail {

////////////////////////////////////////////////////////////////////////////////

Y_WEAK void AssertTrapImpl(
    TStringBuf trapType,
    TStringBuf expr,
    TStringBuf description,
    TStringBuf file,
    int line,
    TStringBuf function)
{
    // Map to Arcadia assert, poorly...
    ::NPrivate::Panic(
        ::NPrivate::TStaticBuf(file.data(), file.length()),
        line,
        function.data(),
        expr.data(),
        "%s: %.*s",
        trapType.data(),
        static_cast<int>(std::min<ui64>(description.length(), std::numeric_limits<int>::max())),
        description.data());
}

////////////////////////////////////////////////////////////////////////////////

} // namespace NYT::NDetail