From f287f4626a3f60eab5bc507ecc78964fd55741d8 Mon Sep 17 00:00:00 2001 From: Лач Date: Tue, 09 Jun 2020 18:11:26 +0000 Subject: [PATCH] feat(parser): Defer ArgsDesc to Vec --- --- a/crates/jsonnet-parser/src/expr.rs +++ b/crates/jsonnet-parser/src/expr.rs @@ -1,5 +1,5 @@ use serde::{Deserialize, Serialize}; -use std::{fmt::Debug, path::PathBuf, rc::Rc}; +use std::{fmt::Debug, ops::Deref, path::PathBuf, rc::Rc}; #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub enum FieldName { @@ -78,9 +78,10 @@ /// Defined function parameters #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct ParamsDesc(pub Vec); -impl ParamsDesc { - pub fn with_defaults(&self) -> Vec { - self.0.iter().filter(|e| e.1.is_some()).cloned().collect() +impl Deref for ParamsDesc { + type Target = Vec; + fn deref(&self) -> &Self::Target { + &self.0 } } @@ -88,6 +89,12 @@ pub struct Arg(pub Option, pub LocExpr); #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct ArgsDesc(pub Vec); +impl Deref for ArgsDesc { + type Target = Vec; + fn deref(&self) -> &Self::Target { + &self.0 + } +} #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] pub struct BindSpec { -- gitstuff