difftreelog
feat(parser) Defer ArgsDesc to Vec
in: master
1 file changed
crates/jsonnet-parser/src/expr.rsdiffbeforeafterboth1use serde::{Deserialize, Serialize};1use serde::{Deserialize, Serialize};2use std::{fmt::Debug, path::PathBuf, rc::Rc};2use std::{fmt::Debug, ops::Deref, path::PathBuf, rc::Rc};334#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]5pub enum FieldName {5pub enum FieldName {78/// Defined function parameters78/// Defined function parameters79#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]79#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]80pub struct ParamsDesc(pub Vec<Param>);80pub struct ParamsDesc(pub Vec<Param>);81impl ParamsDesc {81impl Deref for ParamsDesc {82 type Target = Vec<Param>;82 pub fn with_defaults(&self) -> Vec<Param> {83 fn deref(&self) -> &Self::Target {83 self.0.iter().filter(|e| e.1.is_some()).cloned().collect()84 &self.084 }85 }85}86}868787#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]88#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]88pub struct Arg(pub Option<String>, pub LocExpr);89pub struct Arg(pub Option<String>, pub LocExpr);89#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]90#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]90pub struct ArgsDesc(pub Vec<Arg>);91pub struct ArgsDesc(pub Vec<Arg>);92impl Deref for ArgsDesc {93 type Target = Vec<Arg>;94 fn deref(&self) -> &Self::Target {95 &self.096 }97}919892#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]99#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]93pub struct BindSpec {100pub struct BindSpec {