--- 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 {