about summary refs log tree commit diff
path: root/src/tools/miri/genmc-sys/cpp/include/ResultHandling.hpp
blob: 189f32e6f513dac3af3f30bdcd5c12abeb17f11d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef GENMC_RESULT_HANDLING_HPP
#define GENMC_RESULT_HANDLING_HPP

// CXX.rs generated headers:
#include "rust/cxx.h"

// GenMC headers:
#include "Verification/VerificationError.hpp"

#include <string>

/** Information about an error, formatted as a string to avoid having to share an error enum and
 * printing functionality with the Rust side. */
static auto format_error(VerificationError err) -> std::unique_ptr<std::string> {
    auto buf = std::string();
    auto s = llvm::raw_string_ostream(buf);
    s << err;
    return std::make_unique<std::string>(s.str());
}

#endif /* GENMC_RESULT_HANDLING_HPP */