xrust/transform/
grouping.rs1use crate::item::{Item, Node, Sequence};
4use crate::transform::context::Context;
5use crate::xdmerror::{Error, ErrorKind};
6
7pub fn current_group<N: Node>(ctxt: &Context<N>) -> Result<Sequence<N>, Error> {
9 Ok(ctxt.current_group.clone())
10}
11
12pub fn current_grouping_key<N: Node>(ctxt: &Context<N>) -> Result<Sequence<N>, Error> {
14 ctxt.current_grouping_key.clone().map_or_else(
15 || {
16 Err(Error::new(
17 ErrorKind::TypeError,
18 String::from("no current grouping key"),
19 ))
20 },
21 |k| Ok(vec![Item::Value(k)]),
22 )
23}