zeek/auxil/spicy/hilti/lib/hilti.hlt
Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

69 lines
3.8 KiB
Plaintext

# Copyright (c) 2020-now by the Zeek Project. See LICENSE for details.
module hilti {
# Ignore this module for code generation, we just need the declarations.
%skip-implementation;
public type BitOrder = enum { LSB0, MSB0 } &cxxname="hilti::rt::integer::BitOrder";
public type ByteOrder = enum { Little, Big, Network, Host } &cxxname="hilti::rt::ByteOrder";
public type Side = enum { Left, Right, Both } &cxxname="hilti::rt::bytes::Side";
public type AddressFamily = enum { IPv4, IPv6 } &cxxname="hilti::rt::AddressFamily";
public type RealType = enum { IEEE754_Single, IEEE754_Double } &cxxname="hilti::rt::real::Type";
public type Protocol = enum { TCP, UDP, ICMP } &cxxname="hilti::rt::Protocol";
public type Charset = enum { ASCII, UTF8, UTF16LE, UTF16BE } &cxxname="hilti::rt::unicode::Charset";
public type DecodeErrorStrategy = enum { IGNORE, REPLACE, STRICT } &cxxname="hilti::rt::unicode::DecodeErrorStrategy";
public type Captures = vector<bytes>;
public type Profiler = __library_type("hilti::rt::Profiler");
public type MatchState = struct {
method Captures captures(view<stream> data);
} &cxxname="hilti::rt::regexp::MatchState";
public type StreamStatistics = struct {
uint<64> num_data_bytes;
uint<64> num_data_chunks;
uint<64> num_gap_bytes;
uint<64> num_gap_chunks;
} &cxxname = "hilti::rt::stream::Statistics";
declare public void print(any obj, bool newline = True) &cxxname="hilti::rt::print" &have_prototype;
declare public void printTuple(tuple<*> t, bool newline = True) &cxxname="hilti::rt::tuple::print" &have_prototype;
declare public void debug(string dbg_stream, any obj) &cxxname="hilti::rt::debug::print" &have_prototype;
declare public void debugIndent(string dbg_stream) &cxxname="hilti::rt::debug::indent" &have_prototype;
declare public void debugDedent(string dbg_stream) &cxxname="hilti::rt::debug::dedent" &have_prototype;
declare public time current_time() &cxxname="hilti::rt::time::current_time" &have_prototype;
declare public time mktime(uint<64> y, uint<64> m, uint<64> d, uint<64> H, uint<64> M, uint<64> S) &cxxname="hilti::rt::time::mktime" &have_prototype;
declare public void abort() &cxxname="hilti::rt::abort_with_backtrace" &have_prototype;
declare public optional<Profiler> profiler_start(string name, optional<uint<64>> size = Null) &cxxname="hilti::rt::profiler::start" &have_prototype;
declare public void profiler_stop(optional<Profiler> p, optional<uint<64>> size = Null) &cxxname="hilti::rt::profiler::stop" &have_prototype;
# Base type for all exceptions.
public type Exception = exception &cxxname="hilti::rt::Exception";
# Helper type referring to any C++-side exception.
public type SystemException = [exception : Exception] &cxxname="std::exception";
# Base type for all exception generated by the runtime system. Catching
# this allows to continue after operations triggering runtime errors.
public type RuntimeError = [exception : Exception] &cxxname="hilti::rt::RuntimeError";
# Base class for exceptions which can be recovered.
public type RecoverableFailure = [exception : Exception] &cxxname="hilti::rt::RecoverableFailure";
# Exception raised when attempting to extracting data from a gap.
public type MissingData = [exception : Exception] &cxxname="hilti::rt::MissingData";
# Returns the message associated with an exception.
declare public string exception_what(SystemException excpt) &cxxname="hilti::rt::exception::what" &have_prototype;
declare public string exception_what(RecoverableFailure excpt) &cxxname="hilti::rt::exception::what" &have_prototype;
# Returns the location associated with an exception.
declare public string exception_where(SystemException excpt) &cxxname="hilti::rt::exception::where" &have_prototype;
declare public string exception_where(RecoverableFailure excpt) &cxxname="hilti::rt::exception::where" &have_prototype;
}