use crate::Dom;
#[derive(Debug)]
pub(crate) struct EvaluationCtx<D: Dom> {
pub(crate) context_node: D::Node,
pub(crate) predicate_ctx: Option<PredicateCtx>,
}
#[derive(Clone, Copy, Debug)]
pub(crate) struct PredicateCtx {
pub(crate) index: usize,
pub(crate) size: usize,
}
impl<D: Dom> EvaluationCtx<D> {
pub(crate) fn new(context_node: D::Node) -> Self {
EvaluationCtx {
context_node,
predicate_ctx: None,
}
}
pub(crate) fn subcontext_for_node(&self, node: D::Node) -> Self {
EvaluationCtx {
context_node: node,
predicate_ctx: self.predicate_ctx,
}
}
}