Support range in str substring (#6867)

This commit is contained in:
Reilly Wood
2022-10-23 02:42:17 -07:00
committed by GitHub
parent 24a98f8999
commit 17b2bcc125
2 changed files with 26 additions and 2 deletions

View File

@ -122,6 +122,19 @@ impl Range {
matches!(self.inclusion, RangeInclusion::Inclusive)
}
pub fn from(&self) -> Result<i64, ShellError> {
self.from.as_integer()
}
pub fn to(&self) -> Result<i64, ShellError> {
let to = self.to.as_integer()?;
if self.is_end_inclusive() {
Ok(to)
} else {
Ok(to - 1)
}
}
pub fn contains(&self, item: &Value) -> bool {
match (item.partial_cmp(&self.from), item.partial_cmp(&self.to)) {
(Some(Ordering::Greater | Ordering::Equal), Some(Ordering::Less)) => self.moves_up(),