summaryrefslogtreecommitdiff
path: root/src/syntax/func
diff options
context:
space:
mode:
Diffstat (limited to 'src/syntax/func')
-rw-r--r--src/syntax/func/mod.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/syntax/func/mod.rs b/src/syntax/func/mod.rs
index 0c5b4447..53bbc14e 100644
--- a/src/syntax/func/mod.rs
+++ b/src/syntax/func/mod.rs
@@ -1,5 +1,6 @@
//! Primitives for argument parsing in library functions.
+use std::iter::FromIterator;
use crate::error::{Error, Errors};
use super::expr::{Expr, Ident, Tuple, Object, Pair};
use super::span::{Span, Spanned};
@@ -55,6 +56,16 @@ impl FuncArgs {
}
}
+impl FromIterator<FuncArg> for FuncArgs {
+ fn from_iter<I: IntoIterator<Item=FuncArg>>(iter: I) -> Self {
+ let mut args = FuncArgs::new();
+ for item in iter.into_iter() {
+ args.add(item);
+ }
+ args
+ }
+}
+
/// Either a positional or keyword argument.
#[derive(Debug, Clone, PartialEq)]
pub enum FuncArg {