llm
Download
37 lines 862 BCModified 2026-08-31 raw
12345678910111213141516171819202122232425262728293031323334353637
#pragma once

// Boolean functions/type info

#include <stdbool.h>
#include <stdint.h>

#include "datatypes/bool.h" // IWYU pragma: export
#include "datatypes/int.h"
#include "datatypes/typeinfo.h"
#include "util.h"

#define yes (Bool_t) true
#define no (Bool_t) false

PUREFUNC Text_t Bool$as_text(const void *b, bool colorize, const TypeInfo_t *type);
OptionalBool_t Bool$parse(Text_t text, Text_t *remainder);
MACROLIKE Bool_t Bool$from_int(Int_t i) {
    return (i.small != 0);
}
MACROLIKE Bool_t Bool$from_int64(Int64_t i) {
    return (i != 0);
}
MACROLIKE Bool_t Bool$from_int32(Int32_t i) {
    return (i != 0);
}
MACROLIKE Bool_t Bool$from_int16(Int16_t i) {
    return (i != 0);
}
MACROLIKE Bool_t Bool$from_int8(Int8_t i) {
    return (i != 0);
}
MACROLIKE Bool_t Bool$from_byte(uint8_t b) {
    return (b != 0);
}

extern const TypeInfo_t Bool$info;