Nix  2.93.0-dev
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
nix::AttrsPattern Struct Reference

#include <nixexpr.hh>

Inheritance diagram for nix::AttrsPattern:
[legend]
Collaboration diagram for nix::AttrsPattern:
[legend]

Classes

struct  Formal
 

Public Types

typedef std::vector< FormalFormals_
 

Public Member Functions

virtual std::shared_ptr< const StaticEnvbuildEnv (const StaticEnv *up) override
 
virtual void bindVars (Evaluator &es, const std::shared_ptr< const StaticEnv > &env) override
 
virtual Envmatch (ExprLambda &lambda, EvalState &state, Env &up, Value *arg, const PosIdx pos) override
 
virtual void addBindingsToJSON (JSON &out, const SymbolTable &symbols) const override
 
bool has (Symbol arg) const
 
std::vector< std::reference_wrapper< const Formal > > lexicographicOrder (const SymbolTable &symbols) const
 
- Public Member Functions inherited from nix::Pattern
 Pattern (Symbol name)
 

Public Attributes

Formals_ formals
 
bool ellipsis
 
- Public Attributes inherited from nix::Pattern
Symbol name
 

Detailed Description

Attribute set destructuring in arguments of a lambda, if present

Member Function Documentation

◆ addBindingsToJSON()

void nix::AttrsPattern::addBindingsToJSON ( JSON & out,
const SymbolTable & symbols ) const
overridevirtual

Implements nix::Pattern.

◆ bindVars()

void nix::AttrsPattern::bindVars ( Evaluator & es,
const std::shared_ptr< const StaticEnv > & env )
overridevirtual

Implements nix::Pattern.

◆ buildEnv()

std::shared_ptr< const StaticEnv > nix::AttrsPattern::buildEnv ( const StaticEnv * up)
overridevirtual

Implements nix::Pattern.

◆ match()

Env & nix::AttrsPattern::match ( ExprLambda & lambda,
EvalState & state,
Env & up,
Value * arg,
const PosIdx pos )
overridevirtual
  • For each formal argument, get the actual argument. If

Implements nix::Pattern.


The documentation for this struct was generated from the following files: