|
|
|
@ -703,24 +703,16 @@ impl<'a> DustRenderer<'a> {
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
let index = self.get(breadcrumbs, &vec!["$idx"]);
|
|
|
|
|
let len = self.get(breadcrumbs, &vec!["$len"]);
|
|
|
|
|
match (index, len) {
|
|
|
|
|
(Err(_), _) | (_, Err(_)) => return Ok("".to_owned()),
|
|
|
|
|
(Ok(index_resolved), Ok(len_resolved)) => {
|
|
|
|
|
match index {
|
|
|
|
|
Err(_) => return Ok("".to_owned()),
|
|
|
|
|
Ok(index_resolved) => {
|
|
|
|
|
// Iteration contexts use OwnedLiteral::LPositiveinteger
|
|
|
|
|
let index_cast = index_resolved
|
|
|
|
|
.get_context_element_reference()
|
|
|
|
|
.to_any()
|
|
|
|
|
.downcast_ref::<OwnedLiteral>();
|
|
|
|
|
let len_cast = len_resolved
|
|
|
|
|
.get_context_element_reference()
|
|
|
|
|
.to_any()
|
|
|
|
|
.downcast_ref::<OwnedLiteral>();
|
|
|
|
|
match (index_cast, len_cast) {
|
|
|
|
|
(
|
|
|
|
|
Some(OwnedLiteral::LPositiveInteger(index_number)),
|
|
|
|
|
Some(OwnedLiteral::LPositiveInteger(len_number)),
|
|
|
|
|
) => {
|
|
|
|
|
match index_cast {
|
|
|
|
|
Some(OwnedLiteral::LPositiveInteger(index_number)) => {
|
|
|
|
|
if *index_number != 0 {
|
|
|
|
|
return Ok("".to_owned());
|
|
|
|
|
} else {
|
|
|
|
|