More flexible error handling, convenience methods
Allow getting solver errors returned rather than raising error. The API allows setting a mask of which error kinds raise vs return. Also add some convenience methods: - `add_to` and `remove_from` constraint methods to solver. - add and remove multiple constraints and edit/suggest variables at once
This commit is contained in:
@@ -46,8 +46,8 @@ typedef struct KiwiErr {
|
||||
bool must_free;
|
||||
} KiwiErr;
|
||||
|
||||
typedef struct KiwiSolver KiwiSolver;
|
||||
|
||||
typedef struct KiwiSolver
|
||||
KiwiSolver; // LuaJIT: typedef struct { unsigned error_mask; } KiwiSolver;
|
||||
KiwiVarRef kiwi_var_new(const char* name);
|
||||
void kiwi_var_del(KiwiVarRef var);
|
||||
KiwiVarRef kiwi_var_clone(KiwiVarRef var);
|
||||
@@ -74,8 +74,8 @@ enum KiwiRelOp kiwi_constraint_op(KiwiConstraintRef constraint);
|
||||
bool kiwi_constraint_violated(KiwiConstraintRef constraint);
|
||||
int kiwi_constraint_expression(KiwiConstraintRef constraint, KiwiExpression* out, int out_size);
|
||||
|
||||
KiwiSolver* kiwi_solver_new();
|
||||
void kiwi_solver_del(KiwiSolver* sp);
|
||||
KiwiSolver* kiwi_solver_new(unsigned error_mask);
|
||||
void kiwi_solver_del(KiwiSolver* s);
|
||||
|
||||
const KiwiErr* kiwi_solver_add_constraint(KiwiSolver* sp, KiwiConstraintRef constraint);
|
||||
const KiwiErr* kiwi_solver_remove_constraint(KiwiSolver* sp, KiwiConstraintRef constraint);
|
||||
|
||||
Reference in New Issue
Block a user