1pub mod arena;
21pub mod ast;
22pub mod axis_iterators;
23pub mod context;
24pub mod error;
25pub mod item_set;
26pub mod iterator;
27pub mod lexer;
28pub mod node_test;
29pub mod operators;
30pub mod parser;
31pub mod timsort;
32pub mod tree_comparer;
33
34pub mod atomize;
36pub mod boolean;
37pub mod cast;
38pub mod iter_adapters;
39pub mod node_ops;
40pub mod quantified;
41pub mod sequence_ops;
42pub mod string_ops;
43pub mod type_info;
44
45pub mod functions;
47
48pub mod bind;
50pub mod eval;
51
52pub mod api;
54
55pub use crate::navigator::{
57 DomNavigator, DomNodeType, NamespaceAxisScope, NavigatorError, RoXmlNavigator, TypedValue,
58 XmlNodeOrder,
59};
60
61pub use self::api::{EvalValue, ExternalVar, TypedEvaluator, XPathEvaluator, XPathExpr};
63
64pub use self::arena::{AstArena, AstNodeId, SourceSpan};
66pub use self::ast::AstNode;
67pub use self::axis_iterators::{
68 AncestorAxis, AttributeAxis, AxisTraversal, ChildAxis, ChildOverDescendantsNodeIterator,
69 DescendantNodeIterator, FollowingNodeIterator, FollowingSiblingAxis, NamespaceAxis, ParentAxis,
70 PrecedingNodeIterator, PrecedingSiblingAxis, SelfAxis, SequentialAxisNodeIterator,
71 SpecialChildNodeIterator, SpecialDescendantNodeIterator,
72};
73pub use self::bind::bind_node;
74pub use self::context::{DynamicContext, NameBinder, VarRef, VarSlotId, VarStore, XPathContext};
75pub use self::error::XPathError;
76pub use self::eval::eval_node;
77pub use self::functions::{
78 FunctionArity, FunctionId, FunctionSignature, XPathValue, FUNCTION_REGISTRY,
79};
80pub use self::item_set::{
81 ItemSet, ItemSetIter, ItemSetIterMut, XPathComparer, XPathEqualityComparer,
82};
83pub use self::iterator::{
84 BufferedNodeIterator, DocumentOrderNodeIterator, EmptyIterator, ItemIterator,
85 PositionFilterNodeIterator, RangeIterator, VecNodeIterator, XmlItem, XmlItemRef,
86 XmlNodeIterator,
87};
88pub use self::lexer::{Lexer, Token};
89pub use self::node_test::{matches_name_test, matches_sequence_type, NodeTest};
90pub use self::parser::{
91 parse, parse_with_options, parse_xpath10, parse_xpath20, ParseError, ParsedXPath,
92};
93pub use self::timsort::{
94 timsort, timsort_by, timsort_slice, timsort_slice_by, timsort_slice_with_comparer,
95 timsort_with_comparer, FnComparer, IComparer, OrdComparer, ReverseComparer,
96};
97pub use self::tree_comparer::TreeComparer;
98
99#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
101pub enum XPathMode {
102 XPath10,
103 #[default]
104 XPath20,
105}
106
107#[derive(Debug, Clone)]
109pub struct XPathParseOptions {
110 pub mode: XPathMode,
111}
112
113impl Default for XPathParseOptions {
114 fn default() -> Self {
115 Self {
116 mode: XPathMode::XPath20,
117 }
118 }
119}