#![forbid(unsafe_code)]
#![allow(deprecated)]
#![deny(missing_docs)]
mod algebra;
mod base;
mod citizen;
#[cfg(test)]
mod citizen_tests;
mod compare;
mod diagnostics;
mod functions;
mod hooks;
mod parse;
mod primitives;
mod recursion;
#[cfg(test)]
mod tests;
pub use algebra::{
AndShape, NotShape, OrShape, OrStrategy, RepeatShape, TableExtraPolicy, TableFieldSpec,
TableShape,
};
pub use base::{
Bindings, ExprKind, MatchScore, Shape, ShapeBindings, ShapeDoc, ShapeMatch, ShapeReport,
check_value_report, insert_shape_satisfaction_claim, satisfies_shape_predicate,
shape_report_from_match,
};
pub use citizen::{
and_shape_class_symbol, any_shape_class_symbol, class_shape_class_symbol,
exact_expr_shape_class_symbol, expr_kind_shape_class_symbol, hooked_shape_class_symbol,
list_shape_class_symbol, not_shape_class_symbol, or_shape_class_symbol,
repeat_shape_class_symbol, table_shape_class_symbol, venn_shape_set_class_symbol,
};
pub use compare::{
ShapeNormalForm, ShapeNormalKind, ShapeProbe, ShapeRelation, ShapeRelationKind, ShapeWitness,
VennShapeSet, normalize_shape, relate_shapes,
};
pub use diagnostics::{
binding_failure_diagnostic, callable_mismatch_diagnostic, expected_shape_diagnostic,
overload_selection_diagnostic,
};
pub use functions::{
FunctionCase, FunctionObject, NativeFunctionImpl, SelectedCase, ShapeObject, case_result_shape,
case_shape, function_cases, overload, shape_value, shape_value_with_encoding,
};
pub use hooks::{
AcceptOnNoDiagnosticsHook, DiscardOnDiagnosticPrefixHook, HookedShape, MatchHook,
MatchHookContext, MatchHookDecision, MatchHookKind, MatchHookObject, MatchHookPhase,
MatchHookTargetKind, ScoreFloorHook, TraceMarkHook, accept_on_no_diagnostics_hook_class_symbol,
discard_on_diagnostic_prefix_hook_class_symbol, hook_ref_arc, hook_value,
score_floor_hook_class_symbol, trace_mark_hook_class_symbol,
};
pub use parse::{check_shape_on_expr, check_shape_on_value, parse_shape_expr, shape_error};
pub use primitives::{
AnyShape, CaptureShape, ClassShape, EffectfulShape, ExactExprShape, ExprKindShape, FieldShape,
FieldSpec, ListShape, NumberValueShape, ObjectExpr, OneOfShape, PrattShape, ShapeExprParser,
};