simplify_truths/spec/models.tsp
Martin Berg Alstad 1b94e63915 Removed unused feature.
Optimized use statements in main.

Simplified truth_combinations code a little.

Updated OpenAPI spec
2024-06-23 19:20:30 +02:00

53 lines
935 B
Plaintext

import "@typespec/openapi3";
using TypeSpec.OpenAPI;
namespace Models;
@summary("A binary operator")
enum BinaryOperator {
AND,
OR,
IMPLICATION,
}
@summary("The inverse of an expression")
model ExpressionNot {
@summary("The expression to negate")
not: Expression;
}
@summary("A binary expression")
model ExpressionBinary {
@summary("The left expression")
left: Expression;
@summary("The binary operator")
operator: BinaryOperator;
@summary("The right expression")
right: Expression;
}
@summary("An atomic expression")
model ExpressionAtomic {
@summary("The atomic value")
atomic: string;
}
@oneOf
@summary("A truth expression")
union Expression {
ExpressionNot,
ExpressionBinary,
ExpressionAtomic,
}
@summary("A truth table")
model TruthTable {
@summary("The header of the truth table")
header: string[];
@summary("The rows and columns of the truth table")
truthMatrix: boolean[][];
}