nushell/src/commands/skip.rs

22 lines
486 B
Rust
Raw Normal View History

2019-05-16 04:42:44 +02:00
use crate::errors::ShellError;
use crate::prelude::*;
2019-05-22 09:12:03 +02:00
pub fn skip(args: CommandArgs<'caller>) -> Result<VecDeque<ReturnValue>, ShellError> {
let amount = args.args[0].as_int()?;
2019-05-16 04:42:44 +02:00
2019-05-22 09:12:03 +02:00
let amount = if args.input.len() > amount as usize {
amount as usize
} else {
args.input.len()
};
2019-05-16 04:42:44 +02:00
2019-05-22 09:12:03 +02:00
let out: VecDeque<ReturnValue> = args
.input
.into_iter()
.skip(amount)
.map(|v| ReturnValue::Value(v))
.collect();
2019-05-16 04:42:44 +02:00
2019-05-22 09:12:03 +02:00
Ok(out)
2019-05-16 04:42:44 +02:00
}