forked from auxolotl/docs
7255 lines
209 KiB
HTML
7255 lines
209 KiB
HTML
|
||
<!doctype html>
|
||
<html lang="en" class="no-js">
|
||
<head>
|
||
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
|
||
<meta name="description" content="Aux Documentation">
|
||
|
||
|
||
<meta name="author" content="Nixpkgs Aux, and Lix Contributors">
|
||
|
||
|
||
<link rel="canonical" href="https://docs.auxolotl.org/Nixpkgs/Library-Reference/attrsets/">
|
||
|
||
|
||
<link rel="prev" href="../asserts/">
|
||
|
||
|
||
<link rel="next" href="../cli/">
|
||
|
||
|
||
<link rel="icon" href="../../../assets/aux-logo.svg">
|
||
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.29">
|
||
|
||
|
||
|
||
<title>lib.attrsets: attribute set functions - Aux Docs</title>
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="../../../assets/stylesheets/main.76a95c52.min.css">
|
||
|
||
|
||
<link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link rel="stylesheet" href="https://fonts.bunny.net/css?family=IBM+Plex+Sans:300,300i,400,400i,700,700i%7CIBM+Plex+Mono:400,400i,700,700i&display=fallback">
|
||
<style>:root{--md-text-font:"IBM Plex Sans";--md-code-font:"IBM Plex Mono"}</style>
|
||
|
||
|
||
|
||
<script>__md_scope=new URL("../../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<meta property="og:type" content="website" >
|
||
|
||
<meta property="og:title" content="lib.attrsets: attribute set functions {#sec-functions-library-attrsets} - Aux Docs" >
|
||
|
||
<meta property="og:description" content="Aux Documentation" >
|
||
|
||
<meta property="og:image" content="https://docs.auxolotl.org/assets/images/social/Nixpkgs/Library-Reference/attrsets.png" >
|
||
|
||
<meta property="og:image:type" content="image/png" >
|
||
|
||
<meta property="og:image:width" content="1200" >
|
||
|
||
<meta property="og:image:height" content="630" >
|
||
|
||
<meta property="og:url" content="https://docs.auxolotl.org/Nixpkgs/Library-Reference/attrsets/" >
|
||
|
||
<meta name="twitter:card" content="summary_large_image" >
|
||
|
||
<meta name="twitter:title" content="lib.attrsets: attribute set functions {#sec-functions-library-attrsets} - Aux Docs" >
|
||
|
||
<meta name="twitter:description" content="Aux Documentation" >
|
||
|
||
<meta name="twitter:image" content="https://docs.auxolotl.org/assets/images/social/Nixpkgs/Library-Reference/attrsets.png" >
|
||
|
||
|
||
|
||
</head>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="blue">
|
||
|
||
|
||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
||
<label class="md-overlay" for="__drawer"></label>
|
||
<div data-md-component="skip">
|
||
|
||
|
||
<a href="#sec-functions-library-attrsets" class="md-skip">
|
||
Skip to content
|
||
</a>
|
||
|
||
</div>
|
||
<div data-md-component="announce">
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<header class="md-header" data-md-component="header">
|
||
<nav class="md-header__inner md-grid" aria-label="Header">
|
||
<a href="../../.." title="Aux Docs" class="md-header__button md-logo" aria-label="Aux Docs" data-md-component="logo">
|
||
|
||
<img src="../../../assets/aux-logo.svg" alt="logo">
|
||
|
||
</a>
|
||
<label class="md-header__button md-icon" for="__drawer">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
|
||
</label>
|
||
<div class="md-header__title" data-md-component="header-title">
|
||
<div class="md-header__ellipsis">
|
||
<div class="md-header__topic">
|
||
<span class="md-ellipsis">
|
||
Aux Docs
|
||
</span>
|
||
</div>
|
||
<div class="md-header__topic" data-md-component="header-topic">
|
||
<span class="md-ellipsis">
|
||
|
||
lib.attrsets: attribute set functions
|
||
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<form class="md-header__option" data-md-component="palette">
|
||
|
||
|
||
|
||
|
||
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="blue" aria-label="Dark Mode" type="radio" name="__palette" id="__palette_0">
|
||
|
||
<label class="md-header__button md-icon" title="Dark Mode" for="__palette_1" hidden>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31Z"/></svg>
|
||
</label>
|
||
|
||
|
||
|
||
|
||
|
||
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="blue" aria-label="Light Mode" type="radio" name="__palette" id="__palette_1">
|
||
|
||
<label class="md-header__button md-icon" title="Light Mode" for="__palette_0" hidden>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22Z"/></svg>
|
||
</label>
|
||
|
||
|
||
</form>
|
||
|
||
|
||
|
||
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||
|
||
|
||
|
||
<label class="md-header__button md-icon" for="__search">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
||
</label>
|
||
<div class="md-search" data-md-component="search" role="dialog">
|
||
<label class="md-search__overlay" for="__search"></label>
|
||
<div class="md-search__inner" role="search">
|
||
<form class="md-search__form" name="search">
|
||
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
||
<label class="md-search__icon md-icon" for="__search">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
||
</label>
|
||
<nav class="md-search__options" aria-label="Search">
|
||
|
||
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
||
</button>
|
||
</nav>
|
||
|
||
</form>
|
||
<div class="md-search__output">
|
||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
||
<div class="md-search-result" data-md-component="search-result">
|
||
<div class="md-search-result__meta">
|
||
Initializing search
|
||
</div>
|
||
<ol class="md-search-result__list" role="presentation"></ol>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="md-header__source">
|
||
<a href="https://git.auxolotl.org/auxolotl/docs" title="Go to repository" class="md-source" data-md-component="source">
|
||
<div class="md-source__icon md-icon">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
|
||
</div>
|
||
<div class="md-source__repository">
|
||
auxolotl/docs
|
||
</div>
|
||
</a>
|
||
</div>
|
||
|
||
</nav>
|
||
|
||
</header>
|
||
|
||
<div class="md-container" data-md-component="container">
|
||
|
||
|
||
|
||
|
||
|
||
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
|
||
<div class="md-grid">
|
||
<ul class="md-tabs__list">
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-tabs__item">
|
||
<a href="../../.." class="md-tabs__link">
|
||
|
||
|
||
|
||
|
||
Aux Documentation Hub
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-tabs__item">
|
||
<a href="../../../TODO/" class="md-tabs__link">
|
||
|
||
|
||
|
||
|
||
TODO
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-tabs__item">
|
||
<a href="../../../Aux/" class="md-tabs__link">
|
||
|
||
|
||
|
||
|
||
Aux
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-tabs__item">
|
||
<a href="../../../Lix/" class="md-tabs__link">
|
||
|
||
|
||
|
||
|
||
Lix
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-tabs__item">
|
||
<a href="../../../NixOS/appstream/" class="md-tabs__link">
|
||
|
||
|
||
|
||
|
||
NixOS
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-tabs__item md-tabs__item--active">
|
||
<a href="../../" class="md-tabs__link">
|
||
|
||
|
||
|
||
|
||
Nixpkgs
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</div>
|
||
</nav>
|
||
|
||
|
||
|
||
<main class="md-main" data-md-component="main">
|
||
<div class="md-main__inner md-grid">
|
||
|
||
|
||
|
||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
||
<div class="md-sidebar__scrollwrap">
|
||
<div class="md-sidebar__inner">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
|
||
<label class="md-nav__title" for="__drawer">
|
||
<a href="../../.." title="Aux Docs" class="md-nav__button md-logo" aria-label="Aux Docs" data-md-component="logo">
|
||
|
||
<img src="../../../assets/aux-logo.svg" alt="logo">
|
||
|
||
</a>
|
||
Aux Docs
|
||
</label>
|
||
|
||
<div class="md-nav__source">
|
||
<a href="https://git.auxolotl.org/auxolotl/docs" title="Go to repository" class="md-source" data-md-component="source">
|
||
<div class="md-source__icon md-icon">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
|
||
</div>
|
||
<div class="md-source__repository">
|
||
auxolotl/docs
|
||
</div>
|
||
</a>
|
||
</div>
|
||
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../.." class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Aux Documentation Hub
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../../TODO/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
TODO
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../../Aux/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Aux
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../../Lix/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Lix
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../../NixOS/appstream/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
NixOS
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
|
||
|
||
|
||
|
||
<div class="md-nav__link md-nav__container">
|
||
<a href="../../" class="md-nav__link ">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Nixpkgs
|
||
</span>
|
||
|
||
|
||
</a>
|
||
|
||
|
||
<label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
</div>
|
||
|
||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
|
||
<label class="md-nav__title" for="__nav_6">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Nixpkgs
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../../options/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Options
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../Build-Helpers/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Build Helpers
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../Development/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Development
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../Functions/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Functions
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../Hooks/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Hooks
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../Languages-And-Frameworks/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Languages And Frameworks
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_8" checked>
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_6_8" id="__nav_6_8_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Library Reference
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_8_label" aria-expanded="true">
|
||
<label class="md-nav__title" for="__nav_6_8">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Library Reference
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../asserts/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.asserts: assertion functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--active">
|
||
|
||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
||
|
||
|
||
|
||
|
||
|
||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.attrsets: attribute set functions
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<a href="./" class="md-nav__link md-nav__link--active">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.attrsets: attribute set functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
|
||
|
||
|
||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<label class="md-nav__title" for="__toc">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Table of contents
|
||
</label>
|
||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.attrByPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.attrByPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.attrByPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.hasAttrByPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.hasAttrByPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.hasAttrByPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_1" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_1" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_1" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.longestValidPathPrefix" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.longestValidPathPrefix
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.longestValidPathPrefix">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_2" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_2" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_2" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.setAttrByPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.setAttrByPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.setAttrByPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getAttrFromPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getAttrFromPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getAttrFromPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_4" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_4" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_4" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.concatMapAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.concatMapAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.concatMapAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_5" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_5" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_5" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.updateManyAttrsByPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.updateManyAttrsByPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.updateManyAttrsByPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_6" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_6" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.attrVals" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.attrVals
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.attrVals">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_6" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_7" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_7" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.attrValues" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.attrValues
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.attrValues">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_8" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_8" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_7" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_9" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_9" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.catAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.catAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.catAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_8" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_10" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_10" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.filterAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.filterAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.filterAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_9" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_11" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_11" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.filterAttrsRecursive" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.filterAttrsRecursive
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.filterAttrsRecursive">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_10" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_12" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_12" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.foldlAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.foldlAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.foldlAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_11" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_13" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_13" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.foldAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.foldAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.foldAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_12" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_14" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_14" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.collect" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.collect
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.collect">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_13" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_15" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_15" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.cartesianProduct" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.cartesianProduct
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.cartesianProduct">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_14" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_16" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_16" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapCartesianProduct" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapCartesianProduct
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapCartesianProduct">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_15" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_17" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_17" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.nameValuePair" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.nameValuePair
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.nameValuePair">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_16" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_18" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_18" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_17" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_19" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_19" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapAttrs-prime" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapAttrs'
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapAttrs'">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_18" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_20" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_20" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapAttrsToList" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapAttrsToList
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapAttrsToList">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_19" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_21" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_21" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.attrsToList" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.attrsToList
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.attrsToList">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_20" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_22" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_22" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapAttrsRecursive" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapAttrsRecursive
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapAttrsRecursive">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#map-over-leaf-attributes" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Map over leaf attributes
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_23" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapAttrsRecursiveCond" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapAttrsRecursiveCond
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapAttrsRecursiveCond">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#map-over-an-leaf-attributes-defined-by-a-condition" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Map over an leaf attributes defined by a condition
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_24" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.genAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.genAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.genAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_21" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_25" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_23" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.isDerivation" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.isDerivation
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.isDerivation">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_22" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_26" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_24" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.toDerivation" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.toDerivation
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.toDerivation">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_23" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_27" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.optionalAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.optionalAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.optionalAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_24" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_28" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_25" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.zipAttrsWithNames" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.zipAttrsWithNames
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.zipAttrsWithNames">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_25" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_29" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_26" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.zipAttrsWith" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.zipAttrsWith
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.zipAttrsWith">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_30" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_27" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.zipAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.zipAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.zipAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_31" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_28" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mergeAttrsList" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mergeAttrsList
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mergeAttrsList">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_26" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_32" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_29" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.recursiveUpdateUntil" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.recursiveUpdateUntil
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.recursiveUpdateUntil">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_27" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_33" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_30" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.recursiveUpdate" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.recursiveUpdate
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.recursiveUpdate">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_28" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_34" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_31" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.matchAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.matchAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.matchAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_29" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_35" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_32" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.overrideExisting" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.overrideExisting
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.overrideExisting">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_30" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_36" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_33" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.showAttrPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.showAttrPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.showAttrPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_31" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_37" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_34" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getOutput" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getOutput
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getOutput">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_32" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_38" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_35" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getFirstOutput" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getFirstOutput
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getFirstOutput">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_33" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_39" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_36" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getBin" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getBin
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getBin">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_34" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_40" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_37" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getLib" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getLib
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getLib">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_35" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_41" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_38" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getStatic" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getStatic
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getStatic">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_36" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_42" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_39" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getDev" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getDev
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getDev">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_37" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_43" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_40" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getInclude" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getInclude
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getInclude">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_38" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_44" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_41" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getMan" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getMan
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getMan">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_39" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_45" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_42" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.chooseDevOutputs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.chooseDevOutputs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.chooseDevOutputs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_40" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_46" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.recurseIntoAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.recurseIntoAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.recurseIntoAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_41" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_47" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_43" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.dontRecurseIntoAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.dontRecurseIntoAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.dontRecurseIntoAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_42" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_48" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.unionOfDisjoint" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.unionOfDisjoint
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.unionOfDisjoint">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_43" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_49" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../cli/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.cli: command-line serialization functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../customisation/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.customisation: Functions to customise (derivation-related) functions, derivatons, or attribute sets
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../debug/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.debug: debugging functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../derivations/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.derivations: miscellaneous derivation-specific functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../fileset/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.fileset: file set functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../filesystem/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.filesystem: filesystem functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../fixedPoints/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.fixedPoints: explicit recursion functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../generators/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.generators: functions that create file formats from nix data structures
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../gvariant/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.gvariant: GVariant formatted string serialization functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../lists/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.lists: list manipulation functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../meta/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.meta: functions for derivation metadata
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../options/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.options: NixOS / nixpkgs option handling
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../path/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.path: path functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../sources/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.sources: source filtering functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../strings/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.strings: string manipulation functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../trivial/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.trivial: miscellaneous functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="../versions/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
lib.versions: version string functions
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../Module-System/module-system.chapter/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Module System
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../Packages/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Packages
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../Standard-Environment/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Standard Environment
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--pruned md-nav__item--nested">
|
||
|
||
|
||
|
||
|
||
<a href="../../Using-Nixpkgs/" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
Using Nixpkgs
|
||
</span>
|
||
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
|
||
</a>
|
||
|
||
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
||
<div class="md-sidebar__scrollwrap">
|
||
<div class="md-sidebar__inner">
|
||
|
||
|
||
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<label class="md-nav__title" for="__toc">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
Table of contents
|
||
</label>
|
||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.attrByPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.attrByPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.attrByPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.hasAttrByPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.hasAttrByPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.hasAttrByPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_1" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_1" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_1" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.longestValidPathPrefix" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.longestValidPathPrefix
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.longestValidPathPrefix">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_2" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_2" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_2" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.setAttrByPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.setAttrByPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.setAttrByPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getAttrFromPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getAttrFromPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getAttrFromPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_4" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_4" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_4" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.concatMapAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.concatMapAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.concatMapAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_5" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_5" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_5" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.updateManyAttrsByPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.updateManyAttrsByPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.updateManyAttrsByPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_6" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_6" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.attrVals" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.attrVals
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.attrVals">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_6" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_7" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_7" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.attrValues" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.attrValues
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.attrValues">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_8" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_8" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_7" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_9" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_9" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.catAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.catAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.catAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_8" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_10" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_10" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.filterAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.filterAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.filterAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_9" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_11" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_11" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.filterAttrsRecursive" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.filterAttrsRecursive
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.filterAttrsRecursive">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_10" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_12" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_12" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.foldlAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.foldlAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.foldlAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_11" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_13" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_13" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.foldAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.foldAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.foldAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_12" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_14" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_14" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.collect" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.collect
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.collect">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_13" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_15" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_15" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.cartesianProduct" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.cartesianProduct
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.cartesianProduct">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_14" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_16" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_16" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapCartesianProduct" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapCartesianProduct
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapCartesianProduct">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_15" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_17" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_17" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.nameValuePair" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.nameValuePair
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.nameValuePair">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_16" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_18" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_18" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_17" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_19" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_19" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapAttrs-prime" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapAttrs'
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapAttrs'">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_18" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_20" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_20" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapAttrsToList" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapAttrsToList
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapAttrsToList">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_19" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_21" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_21" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.attrsToList" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.attrsToList
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.attrsToList">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_20" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_22" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_22" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapAttrsRecursive" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapAttrsRecursive
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapAttrsRecursive">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#map-over-leaf-attributes" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Map over leaf attributes
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_23" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mapAttrsRecursiveCond" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mapAttrsRecursiveCond
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mapAttrsRecursiveCond">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#map-over-an-leaf-attributes-defined-by-a-condition" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Map over an leaf attributes defined by a condition
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_24" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.genAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.genAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.genAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_21" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_25" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_23" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.isDerivation" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.isDerivation
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.isDerivation">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_22" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_26" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_24" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.toDerivation" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.toDerivation
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.toDerivation">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_23" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_27" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.optionalAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.optionalAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.optionalAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_24" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_28" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_25" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.zipAttrsWithNames" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.zipAttrsWithNames
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.zipAttrsWithNames">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_25" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_29" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_26" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.zipAttrsWith" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.zipAttrsWith
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.zipAttrsWith">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_30" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_27" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.zipAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.zipAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.zipAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_31" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_28" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.mergeAttrsList" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.mergeAttrsList
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.mergeAttrsList">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_26" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_32" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_29" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.recursiveUpdateUntil" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.recursiveUpdateUntil
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.recursiveUpdateUntil">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_27" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_33" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_30" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.recursiveUpdate" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.recursiveUpdate
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.recursiveUpdate">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_28" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_34" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_31" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.matchAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.matchAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.matchAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_29" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_35" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_32" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.overrideExisting" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.overrideExisting
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.overrideExisting">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_30" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_36" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_33" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.showAttrPath" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.showAttrPath
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.showAttrPath">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_31" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_37" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_34" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getOutput" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getOutput
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getOutput">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_32" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_38" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_35" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getFirstOutput" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getFirstOutput
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getFirstOutput">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_33" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_39" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_36" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getBin" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getBin
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getBin">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_34" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_40" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_37" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getLib" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getLib
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getLib">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_35" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_41" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_38" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getStatic" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getStatic
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getStatic">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_36" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_42" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_39" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getDev" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getDev
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getDev">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_37" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_43" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_40" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getInclude" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getInclude
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getInclude">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_38" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_44" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_41" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.getMan" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.getMan
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.getMan">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_39" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_45" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_42" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.chooseDevOutputs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.chooseDevOutputs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.chooseDevOutputs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_40" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_46" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.recurseIntoAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.recurseIntoAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.recurseIntoAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_41" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_47" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#examples_43" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Examples
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.dontRecurseIntoAttrs" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.dontRecurseIntoAttrs
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.dontRecurseIntoAttrs">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_42" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_48" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#function-library-lib.attrsets.unionOfDisjoint" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
lib.attrsets.unionOfDisjoint
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="lib.attrsets.unionOfDisjoint">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#inputs_43" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Inputs
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#type_49" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
Type
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="md-content" data-md-component="content">
|
||
<article class="md-content__inner md-typeset">
|
||
|
||
|
||
|
||
|
||
<h1 id="sec-functions-library-attrsets">lib.attrsets: attribute set functions</h1>
|
||
<p>Operations on attribute sets.</p>
|
||
<h2 id="function-library-lib.attrsets.attrByPath"><code>lib.attrsets.attrByPath</code></h2>
|
||
<p>Return an attribute from nested attribute sets.</p>
|
||
<p>Nix has an <a href="https://nixos.org/manual/nix/stable/language/operators#attribute-selection">attribute selection operator <code>. or</code></a> which is sufficient for such queries, as long as the number of attributes is static. For example:</p>
|
||
<div class="highlight"><pre><span></span><code><span class="p">(</span>x<span class="o">.</span>a<span class="o">.</span>b <span class="ow">or</span> <span class="mi">6</span><span class="p">)</span> <span class="o">==</span> attrByPath <span class="p">[</span><span class="s2">"a"</span> <span class="s2">"b"</span><span class="p">]</span> <span class="mi">6</span> x
|
||
<span class="c1"># and</span>
|
||
<span class="p">(</span>x<span class="o">.</span><span class="si">${</span>f p<span class="si">}</span><span class="o">.</span><span class="s2">"example.com"</span> <span class="ow">or</span> <span class="mi">6</span><span class="p">)</span> <span class="o">==</span> attrByPath <span class="p">[</span> <span class="p">(</span>f p<span class="p">)</span> <span class="s2">"example.com"</span> <span class="p">]</span> <span class="mi">6</span> x
|
||
</code></pre></div>
|
||
<h3 id="inputs">Inputs</h3>
|
||
<p><code>attrPath</code></p>
|
||
<p>: A list of strings representing the attribute path to return from <code>set</code></p>
|
||
<p><code>default</code></p>
|
||
<p>: Default value if <code>attrPath</code> does not resolve to an existing value</p>
|
||
<p><code>set</code></p>
|
||
<p>: The nested attribute set to select values from</p>
|
||
<h3 id="type">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>attrByPath :: [String] -> Any -> AttrSet -> Any
|
||
</code></pre></div>
|
||
<h3 id="examples">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.attrByPath</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="ss">x</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="p">};</span> <span class="p">}</span>
|
||
<span class="c1"># ["a" "b"] is equivalent to x.a.b</span>
|
||
<span class="c1"># 6 is a default value to return if the path does not exist in attrset</span>
|
||
attrByPath <span class="p">[</span><span class="s2">"a"</span> <span class="s2">"b"</span><span class="p">]</span> <span class="mi">6</span> <span class="ss">x</span>
|
||
<span class="o">=></span> <span class="mi">3</span>
|
||
attrByPath <span class="p">[</span><span class="s2">"z"</span> <span class="s2">"z"</span><span class="p">]</span> <span class="mi">6</span> <span class="ss">x</span>
|
||
<span class="o">=></span> <span class="mi">6</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L65">lib/attrsets.nix:65</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.hasAttrByPath"><code>lib.attrsets.hasAttrByPath</code></h2>
|
||
<p>Return if an attribute from nested attribute set exists.</p>
|
||
<p>Nix has a <a href="https://nixos.org/manual/nix/stable/language/operators#has-attribute">has attribute operator <code>?</code></a>, which is sufficient for such queries, as long as the number of attributes is static. For example:</p>
|
||
<div class="highlight"><pre><span></span><code><span class="p">(</span>x<span class="o">?</span>a<span class="o">.</span>b<span class="p">)</span> <span class="o">==</span> hasAttrByPath <span class="p">[</span><span class="s2">"a"</span> <span class="s2">"b"</span><span class="p">]</span> x
|
||
<span class="c1"># and</span>
|
||
<span class="p">(</span>x<span class="o">?</span><span class="si">${</span>f p<span class="si">}</span><span class="o">.</span><span class="s2">"example.com"</span><span class="p">)</span> <span class="o">==</span> hasAttrByPath <span class="p">[</span> <span class="p">(</span>f p<span class="p">)</span> <span class="s2">"example.com"</span> <span class="p">]</span> x
|
||
</code></pre></div>
|
||
<p><strong>Laws</strong>:
|
||
1. <code>nix
|
||
hasAttrByPath [] x == true</code></p>
|
||
<h3 id="inputs_1">Inputs</h3>
|
||
<p><code>attrPath</code></p>
|
||
<p>: A list of strings representing the attribute path to check from <code>set</code></p>
|
||
<p><code>e</code></p>
|
||
<p>: The nested attribute set to check</p>
|
||
<h3 id="type_1">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>hasAttrByPath :: [String] -> AttrSet -> Bool
|
||
</code></pre></div>
|
||
<h3 id="examples_1">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.hasAttrByPath</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="ss">x</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="p">};</span> <span class="p">}</span>
|
||
hasAttrByPath <span class="p">[</span><span class="s2">"a"</span> <span class="s2">"b"</span><span class="p">]</span> <span class="ss">x</span>
|
||
<span class="o">=></span> <span class="no">true</span>
|
||
hasAttrByPath <span class="p">[</span><span class="s2">"z"</span> <span class="s2">"z"</span><span class="p">]</span> <span class="ss">x</span>
|
||
<span class="o">=></span> <span class="no">false</span>
|
||
hasAttrByPath <span class="p">[]</span> <span class="p">(</span><span class="nb">throw</span> <span class="s2">"no need"</span><span class="p">)</span>
|
||
<span class="o">=></span> <span class="no">true</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L133">lib/attrsets.nix:133</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.longestValidPathPrefix"><code>lib.attrsets.longestValidPathPrefix</code></h2>
|
||
<p>Return the longest prefix of an attribute path that refers to an existing attribute in a nesting of attribute sets.</p>
|
||
<p>Can be used after <a href="#function-library-lib.attrsets.mapAttrsRecursiveCond"><code>mapAttrsRecursiveCond</code></a> to apply a condition,
|
||
although this will evaluate the predicate function on sibling attributes as well.</p>
|
||
<p>Note that the empty attribute path is valid for all values, so this function only throws an exception if any of its inputs does.</p>
|
||
<p><strong>Laws</strong>:
|
||
1. <code>nix
|
||
attrsets.longestValidPathPrefix [] x == []</code></p>
|
||
<ol>
|
||
<li><code>nix
|
||
hasAttrByPath (attrsets.longestValidPathPrefix p x) x == true</code></li>
|
||
</ol>
|
||
<h3 id="inputs_2">Inputs</h3>
|
||
<p><code>attrPath</code></p>
|
||
<p>: A list of strings representing the longest possible path that may be returned.</p>
|
||
<p><code>v</code></p>
|
||
<p>: The nested attribute set to check.</p>
|
||
<h3 id="type_2">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>attrsets.longestValidPathPrefix :: [String] -> Value -> [String]
|
||
</code></pre></div>
|
||
<h3 id="examples_2">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.longestValidPathPrefix</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="ss">x</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="p">};</span> <span class="p">}</span>
|
||
attrsets<span class="o">.</span>longestValidPathPrefix <span class="p">[</span><span class="s2">"a"</span> <span class="s2">"b"</span> <span class="s2">"c"</span><span class="p">]</span> <span class="ss">x</span>
|
||
<span class="o">=></span> <span class="p">[</span><span class="s2">"a"</span> <span class="s2">"b"</span><span class="p">]</span>
|
||
attrsets<span class="o">.</span>longestValidPathPrefix <span class="p">[</span><span class="s2">"a"</span><span class="p">]</span> <span class="ss">x</span>
|
||
<span class="o">=></span> <span class="p">[</span><span class="s2">"a"</span><span class="p">]</span>
|
||
attrsets<span class="o">.</span>longestValidPathPrefix <span class="p">[</span><span class="s2">"z"</span> <span class="s2">"z"</span><span class="p">]</span> <span class="ss">x</span>
|
||
<span class="o">=></span> <span class="p">[]</span>
|
||
attrsets<span class="o">.</span>longestValidPathPrefix <span class="p">[</span><span class="s2">"z"</span> <span class="s2">"z"</span><span class="p">]</span> <span class="p">(</span><span class="nb">throw</span> <span class="s2">"no need"</span><span class="p">)</span>
|
||
<span class="o">=></span> <span class="p">[]</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L202">lib/attrsets.nix:202</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.setAttrByPath"><code>lib.attrsets.setAttrByPath</code></h2>
|
||
<p>Create a new attribute set with <code>value</code> set at the nested attribute location specified in <code>attrPath</code>.</p>
|
||
<h3 id="inputs_3">Inputs</h3>
|
||
<p><code>attrPath</code></p>
|
||
<p>: A list of strings representing the attribute path to set</p>
|
||
<p><code>value</code></p>
|
||
<p>: The value to set at the location described by <code>attrPath</code></p>
|
||
<h3 id="type_3">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>setAttrByPath :: [String] -> Any -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_3">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.setAttrByPath</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>setAttrByPath <span class="p">[</span><span class="s2">"a"</span> <span class="s2">"b"</span><span class="p">]</span> <span class="mi">3</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="p">};</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L265">lib/attrsets.nix:265</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.getAttrFromPath"><code>lib.attrsets.getAttrFromPath</code></h2>
|
||
<p>Like <code>attrByPath</code>, but without a default value. If it doesn't find the
|
||
path it will throw an error.</p>
|
||
<p>Nix has an <a href="https://nixos.org/manual/nix/stable/language/operators#attribute-selection">attribute selection operator</a> which is sufficient for such queries, as long as the number of attributes is static. For example:</p>
|
||
<div class="highlight"><pre><span></span><code>x<span class="o">.</span>a<span class="o">.</span><span class="ss">b</span> <span class="o">==</span> getAttrByPath <span class="p">[</span><span class="s2">"a"</span> <span class="s2">"b"</span><span class="p">]</span> x
|
||
<span class="c1"># and</span>
|
||
x<span class="o">.</span><span class="si">${</span>f p<span class="si">}</span><span class="o">.</span><span class="s2">"example.com"</span> <span class="o">==</span> getAttrByPath <span class="p">[</span> <span class="p">(</span>f p<span class="p">)</span> <span class="s2">"example.com"</span> <span class="p">]</span> x
|
||
</code></pre></div>
|
||
<h3 id="inputs_4">Inputs</h3>
|
||
<p><code>attrPath</code></p>
|
||
<p>: A list of strings representing the attribute path to get from <code>set</code></p>
|
||
<p><code>set</code></p>
|
||
<p>: The nested attribute set to find the value in.</p>
|
||
<h3 id="type_4">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>getAttrFromPath :: [String] -> AttrSet -> Any
|
||
</code></pre></div>
|
||
<h3 id="examples_4">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.getAttrFromPath</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="ss">x</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="p">};</span> <span class="p">}</span>
|
||
getAttrFromPath <span class="p">[</span><span class="s2">"a"</span> <span class="s2">"b"</span><span class="p">]</span> <span class="ss">x</span>
|
||
<span class="o">=></span> <span class="mi">3</span>
|
||
getAttrFromPath <span class="p">[</span><span class="s2">"z"</span> <span class="s2">"z"</span><span class="p">]</span> <span class="ss">x</span>
|
||
<span class="o">=></span> error<span class="p">:</span> cannot find attribute <span class="err">`</span>z<span class="o">.</span>z'
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L319">lib/attrsets.nix:319</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.concatMapAttrs"><code>lib.attrsets.concatMapAttrs</code></h2>
|
||
<p>Map each attribute in the given set and merge them into a new attribute set.</p>
|
||
<h3 id="inputs_5">Inputs</h3>
|
||
<p><code>f</code></p>
|
||
<p>: 1. Function argument</p>
|
||
<p><code>v</code></p>
|
||
<p>: 2. Function argument</p>
|
||
<h3 id="type_5">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>concatMapAttrs :: (String -> a -> AttrSet) -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_5">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.concatMapAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>concatMapAttrs
|
||
<span class="p">(</span>name<span class="p">:</span> value<span class="p">:</span> <span class="p">{</span>
|
||
<span class="si">${</span>name<span class="si">}</span> <span class="o">=</span> value<span class="p">;</span>
|
||
<span class="si">${</span>name <span class="o">+</span> value<span class="si">}</span> <span class="o">=</span> value<span class="p">;</span>
|
||
<span class="p">})</span>
|
||
<span class="p">{</span> <span class="ss">x</span> <span class="o">=</span> <span class="s2">"a"</span><span class="p">;</span> <span class="ss">y</span> <span class="o">=</span> <span class="s2">"b"</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">x</span> <span class="o">=</span> <span class="s2">"a"</span><span class="p">;</span> <span class="ss">xa</span> <span class="o">=</span> <span class="s2">"a"</span><span class="p">;</span> <span class="ss">y</span> <span class="o">=</span> <span class="s2">"b"</span><span class="p">;</span> <span class="ss">yb</span> <span class="o">=</span> <span class="s2">"b"</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L360">lib/attrsets.nix:360</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.updateManyAttrsByPath"><code>lib.attrsets.updateManyAttrsByPath</code></h2>
|
||
<p>Update or set specific paths of an attribute set.</p>
|
||
<p>Takes a list of updates to apply and an attribute set to apply them to,
|
||
and returns the attribute set with the updates applied. Updates are
|
||
represented as <code>{ path = ...; update = ...; }</code> values, where <code>path</code> is a
|
||
list of strings representing the attribute path that should be updated,
|
||
and <code>update</code> is a function that takes the old value at that attribute path
|
||
as an argument and returns the new
|
||
value it should be.</p>
|
||
<p>Properties:</p>
|
||
<ul>
|
||
<li>
|
||
<p>Updates to deeper attribute paths are applied before updates to more
|
||
shallow attribute paths</p>
|
||
</li>
|
||
<li>
|
||
<p>Multiple updates to the same attribute path are applied in the order
|
||
they appear in the update list</p>
|
||
</li>
|
||
<li>
|
||
<p>If any but the last <code>path</code> element leads into a value that is not an
|
||
attribute set, an error is thrown</p>
|
||
</li>
|
||
<li>
|
||
<p>If there is an update for an attribute path that doesn't exist,
|
||
accessing the argument in the update function causes an error, but
|
||
intermediate attribute sets are implicitly created as needed</p>
|
||
</li>
|
||
</ul>
|
||
<h3 id="type_6">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>updateManyAttrsByPath :: [{ path :: [String]; update :: (Any -> Any); }] -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_6">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.updateManyAttrsByPath</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>updateManyAttrsByPath <span class="p">[</span>
|
||
<span class="p">{</span>
|
||
<span class="ss">path</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">"a"</span> <span class="s2">"b"</span> <span class="p">];</span>
|
||
<span class="ss">update</span> <span class="o">=</span> old<span class="p">:</span> <span class="p">{</span> <span class="ss">d</span> <span class="o">=</span> old<span class="o">.</span>c<span class="p">;</span> <span class="p">};</span>
|
||
<span class="p">}</span>
|
||
<span class="p">{</span>
|
||
<span class="ss">path</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">"a"</span> <span class="s2">"b"</span> <span class="s2">"c"</span> <span class="p">];</span>
|
||
<span class="ss">update</span> <span class="o">=</span> old<span class="p">:</span> old <span class="o">+</span> <span class="mi">1</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
<span class="p">{</span>
|
||
<span class="ss">path</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">"x"</span> <span class="s2">"y"</span> <span class="p">];</span>
|
||
<span class="ss">update</span> <span class="o">=</span> old<span class="p">:</span> <span class="s2">"xy"</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
<span class="p">]</span> <span class="p">{</span> a<span class="o">.</span>b<span class="o">.</span><span class="ss">c</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">d</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">};</span> <span class="p">};</span> <span class="ss">x</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">y</span> <span class="o">=</span> <span class="s2">"xy"</span><span class="p">;</span> <span class="p">};</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L423">lib/attrsets.nix:423</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.attrVals"><code>lib.attrsets.attrVals</code></h2>
|
||
<p>Return the specified attributes from a set.</p>
|
||
<h3 id="inputs_6">Inputs</h3>
|
||
<p><code>nameList</code></p>
|
||
<p>: The list of attributes to fetch from <code>set</code>. Each attribute name must exist on the attrbitue set</p>
|
||
<p><code>set</code></p>
|
||
<p>: The set to get attribute values from</p>
|
||
<h3 id="type_7">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>attrVals :: [String] -> AttrSet -> [Any]
|
||
</code></pre></div>
|
||
<h3 id="examples_7">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.attrVals</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>attrVals <span class="p">[</span><span class="s2">"a"</span> <span class="s2">"b"</span> <span class="s2">"c"</span><span class="p">]</span> <span class="ss">as</span>
|
||
<span class="o">=></span> <span class="p">[</span>as<span class="o">.</span>a as<span class="o">.</span>b as<span class="o">.</span>c<span class="p">]</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L513">lib/attrsets.nix:513</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.attrValues"><code>lib.attrsets.attrValues</code></h2>
|
||
<p>Return the values of all attributes in the given set, sorted by
|
||
attribute name.</p>
|
||
<h3 id="type_8">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>attrValues :: AttrSet -> [Any]
|
||
</code></pre></div>
|
||
<h3 id="examples_8">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.attrValues</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>attrValues <span class="p">{</span><span class="ss">c</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;}</span>
|
||
<span class="o">=></span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span> <span class="mi">3</span><span class="p">]</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L539">lib/attrsets.nix:539</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.getAttrs"><code>lib.attrsets.getAttrs</code></h2>
|
||
<p>Given a set of attribute names, return the set of the corresponding
|
||
attributes from the given set.</p>
|
||
<h3 id="inputs_7">Inputs</h3>
|
||
<p><code>names</code></p>
|
||
<p>: A list of attribute names to get out of <code>set</code></p>
|
||
<p><code>attrs</code></p>
|
||
<p>: The set to get the named attributes from</p>
|
||
<h3 id="type_9">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>getAttrs :: [String] -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_9">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.getAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>getAttrs <span class="p">[</span> <span class="s2">"a"</span> <span class="s2">"b"</span> <span class="p">]</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="ss">c</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L574">lib/attrsets.nix:574</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.catAttrs"><code>lib.attrsets.catAttrs</code></h2>
|
||
<p>Collect each attribute named <code>attr</code> from a list of attribute
|
||
sets. Sets that don't contain the named attribute are ignored.</p>
|
||
<h3 id="inputs_8">Inputs</h3>
|
||
<p><code>attr</code></p>
|
||
<p>: The attribute name to get out of the sets.</p>
|
||
<p><code>list</code></p>
|
||
<p>: The list of attribute sets to go through</p>
|
||
<h3 id="type_10">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>catAttrs :: String -> [AttrSet] -> [Any]
|
||
</code></pre></div>
|
||
<h3 id="examples_10">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.catAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>catAttrs <span class="s2">"a"</span> <span class="p">[{</span><span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;}</span> <span class="p">{</span><span class="ss">b</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;}</span> <span class="p">{</span><span class="ss">a</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;}]</span>
|
||
<span class="o">=></span> <span class="p">[</span><span class="mi">1</span> <span class="mi">2</span><span class="p">]</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L609">lib/attrsets.nix:609</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.filterAttrs"><code>lib.attrsets.filterAttrs</code></h2>
|
||
<p>Filter an attribute set by removing all attributes for which the
|
||
given predicate return false.</p>
|
||
<h3 id="inputs_9">Inputs</h3>
|
||
<p><code>pred</code></p>
|
||
<p>: Predicate taking an attribute name and an attribute value, which returns <code>true</code> to include the attribute, or <code>false</code> to exclude the attribute.</p>
|
||
<p><code>set</code></p>
|
||
<p>: The attribute set to filter</p>
|
||
<h3 id="type_11">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>filterAttrs :: (String -> Any -> Bool) -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_11">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.filterAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>filterAttrs <span class="p">(</span>n<span class="p">:</span> v<span class="p">:</span> <span class="ss">n</span> <span class="o">==</span> <span class="s2">"foo"</span><span class="p">)</span> <span class="p">{</span> <span class="ss">foo</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">bar</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">foo</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L644">lib/attrsets.nix:644</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.filterAttrsRecursive"><code>lib.attrsets.filterAttrsRecursive</code></h2>
|
||
<p>Filter an attribute set recursively by removing all attributes for
|
||
which the given predicate return false.</p>
|
||
<h3 id="inputs_10">Inputs</h3>
|
||
<p><code>pred</code></p>
|
||
<p>: Predicate taking an attribute name and an attribute value, which returns <code>true</code> to include the attribute, or <code>false</code> to exclude the attribute.</p>
|
||
<p><code>set</code></p>
|
||
<p>: The attribute set to filter</p>
|
||
<h3 id="type_12">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>filterAttrsRecursive :: (String -> Any -> Bool) -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_12">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.filterAttrsRecursive</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>filterAttrsRecursive <span class="p">(</span>n<span class="p">:</span> v<span class="p">:</span> v <span class="o">!=</span> <span class="no">null</span><span class="p">)</span> <span class="p">{</span> <span class="ss">foo</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">bar</span> <span class="o">=</span> <span class="no">null</span><span class="p">;</span> <span class="p">};</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">foo</span> <span class="o">=</span> <span class="p">{};</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L682">lib/attrsets.nix:682</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.foldlAttrs"><code>lib.attrsets.foldlAttrs</code></h2>
|
||
<p>Like <a href="#function-library-lib.lists.foldl-prime"><code>lib.lists.foldl'</code></a> but for attribute sets.
|
||
Iterates over every name-value pair in the given attribute set.
|
||
The result of the callback function is often called <code>acc</code> for accumulator. It is passed between callbacks from left to right and the final <code>acc</code> is the return value of <code>foldlAttrs</code>.</p>
|
||
<p>Attention:</p>
|
||
<p>There is a completely different function <code>lib.foldAttrs</code>
|
||
which has nothing to do with this function, despite the similar name.</p>
|
||
<h3 id="inputs_11">Inputs</h3>
|
||
<p><code>f</code></p>
|
||
<p>: 1. Function argument</p>
|
||
<p><code>init</code></p>
|
||
<p>: 2. Function argument</p>
|
||
<p><code>set</code></p>
|
||
<p>: 3. Function argument</p>
|
||
<h3 id="type_13">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>foldlAttrs :: ( a -> String -> b -> a ) -> a -> { ... :: b } -> a
|
||
</code></pre></div>
|
||
<h3 id="examples_13">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.foldlAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>foldlAttrs
|
||
<span class="p">(</span>acc<span class="p">:</span> name<span class="p">:</span> value<span class="p">:</span> <span class="p">{</span>
|
||
<span class="ss">sum</span> <span class="o">=</span> acc<span class="o">.</span>sum <span class="o">+</span> value<span class="p">;</span>
|
||
<span class="ss">names</span> <span class="o">=</span> acc<span class="o">.</span>names <span class="o">++</span> <span class="p">[</span>name<span class="p">];</span>
|
||
<span class="p">})</span>
|
||
<span class="p">{</span> <span class="ss">sum</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="ss">names</span> <span class="o">=</span> <span class="p">[];</span> <span class="p">}</span>
|
||
<span class="p">{</span>
|
||
<span class="ss">foo</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
|
||
<span class="ss">bar</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
<span class="o">-></span>
|
||
<span class="p">{</span>
|
||
<span class="ss">sum</span> <span class="o">=</span> <span class="mi">11</span><span class="p">;</span>
|
||
<span class="ss">names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"bar"</span> <span class="s2">"foo"</span><span class="p">];</span>
|
||
<span class="p">}</span>
|
||
|
||
foldlAttrs
|
||
<span class="p">(</span><span class="nb">throw</span> <span class="s2">"function not needed"</span><span class="p">)</span>
|
||
<span class="mi">123</span>
|
||
<span class="p">{};</span>
|
||
<span class="o">-></span>
|
||
<span class="mi">123</span>
|
||
|
||
foldlAttrs
|
||
<span class="p">(</span>acc<span class="p">:</span> _<span class="p">:</span> _<span class="p">:</span> acc<span class="p">)</span>
|
||
<span class="mi">3</span>
|
||
<span class="p">{</span> <span class="ss">z</span> <span class="o">=</span> <span class="nb">throw</span> <span class="s2">"value not needed"</span><span class="p">;</span> <span class="ss">a</span> <span class="o">=</span> <span class="nb">throw</span> <span class="s2">"value not needed"</span><span class="p">;</span> <span class="p">};</span>
|
||
<span class="o">-></span>
|
||
<span class="mi">3</span>
|
||
|
||
The accumulator doesn't have to be an attrset<span class="o">.</span>
|
||
It can be as simple as a number <span class="ow">or</span> string<span class="o">.</span>
|
||
|
||
foldlAttrs
|
||
<span class="p">(</span>acc<span class="p">:</span> _<span class="p">:</span> v<span class="p">:</span> acc <span class="o">*</span> <span class="mi">10</span> <span class="o">+</span> v<span class="p">)</span>
|
||
<span class="mi">1</span>
|
||
<span class="p">{</span> <span class="ss">z</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">};</span>
|
||
<span class="o">-></span>
|
||
<span class="mi">121</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L776">lib/attrsets.nix:776</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.foldAttrs"><code>lib.attrsets.foldAttrs</code></h2>
|
||
<p>Apply fold functions to values grouped by key.</p>
|
||
<h3 id="inputs_12">Inputs</h3>
|
||
<p><code>op</code></p>
|
||
<p>: A function, given a value and a collector combines the two.</p>
|
||
<p><code>nul</code></p>
|
||
<p>: The starting value.</p>
|
||
<p><code>list_of_attrs</code></p>
|
||
<p>: A list of attribute sets to fold together by key.</p>
|
||
<h3 id="type_14">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>foldAttrs :: (Any -> Any -> Any) -> Any -> [AttrSets] -> Any
|
||
</code></pre></div>
|
||
<h3 id="examples_14">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.foldAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>foldAttrs <span class="p">(</span>item<span class="p">:</span> acc<span class="p">:</span> <span class="p">[</span>item<span class="p">]</span> <span class="o">++</span> acc<span class="p">)</span> <span class="p">[]</span> <span class="p">[{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="p">}]</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">[</span> <span class="mi">2</span> <span class="mi">3</span> <span class="p">];</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L817">lib/attrsets.nix:817</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.collect"><code>lib.attrsets.collect</code></h2>
|
||
<p>Recursively collect sets that verify a given predicate named <code>pred</code>
|
||
from the set <code>attrs</code>. The recursion is stopped when the predicate is
|
||
verified.</p>
|
||
<h3 id="inputs_13">Inputs</h3>
|
||
<p><code>pred</code></p>
|
||
<p>: Given an attribute's value, determine if recursion should stop.</p>
|
||
<p><code>attrs</code></p>
|
||
<p>: The attribute set to recursively collect.</p>
|
||
<h3 id="type_15">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>collect :: (AttrSet -> Bool) -> AttrSet -> [x]
|
||
</code></pre></div>
|
||
<h3 id="examples_15">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.collect</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>collect isList <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"b"</span><span class="p">];</span> <span class="p">};</span> <span class="ss">c</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">];</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">[[</span><span class="s2">"b"</span><span class="p">]</span> <span class="p">[</span><span class="mi">1</span><span class="p">]]</span>
|
||
|
||
collect <span class="p">(</span>x<span class="p">:</span> x <span class="o">?</span> outPath<span class="p">)</span>
|
||
<span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">outPath</span> <span class="o">=</span> <span class="s2">"a/"</span><span class="p">;</span> <span class="p">};</span> <span class="ss">b</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">outPath</span> <span class="o">=</span> <span class="s2">"b/"</span><span class="p">;</span> <span class="p">};</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">[{</span> <span class="ss">outPath</span> <span class="o">=</span> <span class="s2">"a/"</span><span class="p">;</span> <span class="p">}</span> <span class="p">{</span> <span class="ss">outPath</span> <span class="o">=</span> <span class="s2">"b/"</span><span class="p">;</span> <span class="p">}]</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L865">lib/attrsets.nix:865</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.cartesianProduct"><code>lib.attrsets.cartesianProduct</code></h2>
|
||
<p>Return the cartesian product of attribute set value combinations.</p>
|
||
<h3 id="inputs_14">Inputs</h3>
|
||
<p><code>attrsOfLists</code></p>
|
||
<p>: Attribute set with attributes that are lists of values</p>
|
||
<h3 id="type_16">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>cartesianProduct :: AttrSet -> [AttrSet]
|
||
</code></pre></div>
|
||
<h3 id="examples_16">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.cartesianProduct</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>cartesianProduct <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">[</span> <span class="mi">1</span> <span class="mi">2</span> <span class="p">];</span> <span class="ss">b</span> <span class="o">=</span> <span class="p">[</span> <span class="mi">10</span> <span class="mi">20</span> <span class="p">];</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">[</span>
|
||
<span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">20</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">20</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="p">]</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L907">lib/attrsets.nix:907</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.mapCartesianProduct"><code>lib.attrsets.mapCartesianProduct</code></h2>
|
||
<p>Return the result of function f applied to the cartesian product of attribute set value combinations.
|
||
Equivalent to using cartesianProduct followed by map.</p>
|
||
<h3 id="inputs_15">Inputs</h3>
|
||
<p><code>f</code></p>
|
||
<p>: A function, given an attribute set, it returns a new value.</p>
|
||
<p><code>attrsOfLists</code></p>
|
||
<p>: Attribute set with attributes that are lists of values</p>
|
||
<h3 id="type_17">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>mapCartesianProduct :: (AttrSet -> a) -> AttrSet -> [a]
|
||
</code></pre></div>
|
||
<h3 id="examples_17">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.mapCartesianProduct</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>mapCartesianProduct <span class="p">({</span>a<span class="p">,</span> b<span class="p">}:</span> <span class="s2">"</span><span class="si">${</span>a<span class="si">}</span><span class="s2">-</span><span class="si">${</span>b<span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">"1"</span> <span class="s2">"2"</span> <span class="p">];</span> <span class="ss">b</span> <span class="o">=</span> <span class="p">[</span> <span class="s2">"3"</span> <span class="s2">"4"</span> <span class="p">];</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">[</span> <span class="s2">"1-3"</span> <span class="s2">"1-4"</span> <span class="s2">"2-3"</span> <span class="s2">"2-4"</span> <span class="p">]</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L948">lib/attrsets.nix:948</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.nameValuePair"><code>lib.attrsets.nameValuePair</code></h2>
|
||
<p>Utility function that creates a <code>{name, value}</code> pair as expected by <code>builtins.listToAttrs</code>.</p>
|
||
<h3 id="inputs_16">Inputs</h3>
|
||
<p><code>name</code></p>
|
||
<p>: Attribute name</p>
|
||
<p><code>value</code></p>
|
||
<p>: Attribute value</p>
|
||
<h3 id="type_18">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>nameValuePair :: String -> Any -> { name :: String; value :: Any; }
|
||
</code></pre></div>
|
||
<h3 id="examples_18">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.nameValuePair</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>nameValuePair <span class="s2">"some"</span> <span class="mi">6</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">name</span> <span class="o">=</span> <span class="s2">"some"</span><span class="p">;</span> <span class="ss">value</span> <span class="o">=</span> <span class="mi">6</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L981">lib/attrsets.nix:981</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.mapAttrs"><code>lib.attrsets.mapAttrs</code></h2>
|
||
<p>Apply a function to each element in an attribute set, creating a new attribute set.</p>
|
||
<h3 id="inputs_17">Inputs</h3>
|
||
<p><code>f</code></p>
|
||
<p>: A function that takes an attribute name and its value, and returns the new value for the attribute.</p>
|
||
<p><code>attrset</code></p>
|
||
<p>: The attribute set to iterate through.</p>
|
||
<h3 id="type_19">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>mapAttrs :: (String -> Any -> Any) -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_19">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.mapAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>mapAttrs <span class="p">(</span>name<span class="p">:</span> value<span class="p">:</span> name <span class="o">+</span> <span class="s2">"-"</span> <span class="o">+</span> value<span class="p">)</span>
|
||
<span class="p">{</span> <span class="ss">x</span> <span class="o">=</span> <span class="s2">"foo"</span><span class="p">;</span> <span class="ss">y</span> <span class="o">=</span> <span class="s2">"bar"</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">x</span> <span class="o">=</span> <span class="s2">"x-foo"</span><span class="p">;</span> <span class="ss">y</span> <span class="o">=</span> <span class="s2">"y-bar"</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1018">lib/attrsets.nix:1018</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.mapAttrs-prime"><code>lib.attrsets.mapAttrs'</code></h2>
|
||
<p>Like <code>mapAttrs</code>, but allows the name of each attribute to be
|
||
changed in addition to the value. The applied function should
|
||
return both the new name and value as a <code>nameValuePair</code>.</p>
|
||
<h3 id="inputs_18">Inputs</h3>
|
||
<p><code>f</code></p>
|
||
<p>: A function, given an attribute's name and value, returns a new <code>nameValuePair</code>.</p>
|
||
<p><code>set</code></p>
|
||
<p>: Attribute set to map over.</p>
|
||
<h3 id="type_20">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>mapAttrs' :: (String -> Any -> { name :: String; value :: Any; }) -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_20">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.mapAttrs'</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>mapAttrs' <span class="p">(</span>name<span class="p">:</span> value<span class="p">:</span> nameValuePair <span class="p">(</span><span class="s2">"foo_"</span> <span class="o">+</span> name<span class="p">)</span> <span class="p">(</span><span class="s2">"bar-"</span> <span class="o">+</span> value<span class="p">))</span>
|
||
<span class="p">{</span> <span class="ss">x</span> <span class="o">=</span> <span class="s2">"a"</span><span class="p">;</span> <span class="ss">y</span> <span class="o">=</span> <span class="s2">"b"</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">foo_x</span> <span class="o">=</span> <span class="s2">"bar-a"</span><span class="p">;</span> <span class="ss">foo_y</span> <span class="o">=</span> <span class="s2">"bar-b"</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1055">lib/attrsets.nix:1055</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.mapAttrsToList"><code>lib.attrsets.mapAttrsToList</code></h2>
|
||
<p>Call a function for each attribute in the given set and return
|
||
the result in a list.</p>
|
||
<h3 id="inputs_19">Inputs</h3>
|
||
<p><code>f</code></p>
|
||
<p>: A function, given an attribute's name and value, returns a new value.</p>
|
||
<p><code>attrs</code></p>
|
||
<p>: Attribute set to map over.</p>
|
||
<h3 id="type_21">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>mapAttrsToList :: (String -> a -> b) -> AttrSet -> [b]
|
||
</code></pre></div>
|
||
<h3 id="examples_21">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.mapAttrsToList</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>mapAttrsToList <span class="p">(</span>name<span class="p">:</span> value<span class="p">:</span> name <span class="o">+</span> value<span class="p">)</span>
|
||
<span class="p">{</span> <span class="ss">x</span> <span class="o">=</span> <span class="s2">"a"</span><span class="p">;</span> <span class="ss">y</span> <span class="o">=</span> <span class="s2">"b"</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">[</span> <span class="s2">"xa"</span> <span class="s2">"yb"</span> <span class="p">]</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1093">lib/attrsets.nix:1093</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.attrsToList"><code>lib.attrsets.attrsToList</code></h2>
|
||
<p>Deconstruct an attrset to a list of name-value pairs as expected by <a href="https://nixos.org/manual/nix/stable/language/builtins.html#builtins-listToAttrs"><code>builtins.listToAttrs</code></a>.
|
||
Each element of the resulting list is an attribute set with these attributes:
|
||
- <code>name</code> (string): The name of the attribute
|
||
- <code>value</code> (any): The value of the attribute</p>
|
||
<p>The following is always true:
|
||
<div class="highlight"><pre><span></span><code><span class="nb">builtins</span><span class="o">.</span>listToAttrs <span class="p">(</span>attrsToList attrs<span class="p">)</span> <span class="o">==</span> attrs
|
||
</code></pre></div></p>
|
||
<div class="admonition warning">
|
||
<p class="admonition-title">Warning</p>
|
||
<p>The opposite is not always true. In general expect that
|
||
<div class="highlight"><pre><span></span><code>attrsToList <span class="p">(</span><span class="nb">builtins</span><span class="o">.</span>listToAttrs list<span class="p">)</span> <span class="o">!=</span> list
|
||
</code></pre></div></p>
|
||
</div>
|
||
<p>This is because the <code>listToAttrs</code> removes duplicate names and doesn't preserve the order of the list.</p>
|
||
<h3 id="inputs_20">Inputs</h3>
|
||
<p><code>set</code></p>
|
||
<p>: The attribute set to deconstruct.</p>
|
||
<h3 id="type_22">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>attrsToList :: AttrSet -> [ { name :: String; value :: Any; } ]
|
||
</code></pre></div>
|
||
<h3 id="examples_22">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.attrsToList</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>attrsToList <span class="p">{</span> <span class="ss">foo</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">bar</span> <span class="o">=</span> <span class="s2">"asdf"</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">[</span> <span class="p">{</span> <span class="ss">name</span> <span class="o">=</span> <span class="s2">"bar"</span><span class="p">;</span> <span class="ss">value</span> <span class="o">=</span> <span class="s2">"asdf"</span><span class="p">;</span> <span class="p">}</span> <span class="p">{</span> <span class="ss">name</span> <span class="o">=</span> <span class="s2">"foo"</span><span class="p">;</span> <span class="ss">value</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">}</span> <span class="p">]</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1141">lib/attrsets.nix:1141</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.mapAttrsRecursive"><code>lib.attrsets.mapAttrsRecursive</code></h2>
|
||
<p>Like <code>mapAttrs</code>, except that it recursively applies itself to the <em>leaf</em> attributes of a potentially-nested attribute set:
|
||
the second argument of the function will never be an attrset.
|
||
Also, the first argument of the mapping function is a <em>list</em> of the attribute names that form the path to the leaf attribute.</p>
|
||
<p>For a function that gives you control over what counts as a leaf, see <code>mapAttrsRecursiveCond</code>.</p>
|
||
<p>{#map-attrs-recursive-example .example}</p>
|
||
<h3 id="map-over-leaf-attributes">Map over leaf attributes</h3>
|
||
<p><div class="highlight"><pre><span></span><code>mapAttrsRecursive <span class="p">(</span>path<span class="p">:</span> value<span class="p">:</span> concatStringsSep <span class="s2">"-"</span> <span class="p">(</span>path <span class="o">++</span> <span class="p">[</span>value<span class="p">]))</span>
|
||
<span class="p">{</span> <span class="ss">n</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="s2">"A"</span><span class="p">;</span> <span class="ss">m</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="s2">"B"</span><span class="p">;</span> <span class="ss">c</span> <span class="o">=</span> <span class="s2">"C"</span><span class="p">;</span> <span class="p">};</span> <span class="p">};</span> <span class="ss">d</span> <span class="o">=</span> <span class="s2">"D"</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
evaluates to
|
||
<div class="highlight"><pre><span></span><code><span class="p">{</span> <span class="ss">n</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="s2">"n-a-A"</span><span class="p">;</span> <span class="ss">m</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="s2">"n-m-b-B"</span><span class="p">;</span> <span class="ss">c</span> <span class="o">=</span> <span class="s2">"n-m-c-C"</span><span class="p">;</span> <span class="p">};</span> <span class="p">};</span> <span class="ss">d</span> <span class="o">=</span> <span class="s2">"d-D"</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div></p>
|
||
<h3 id="type_23">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>mapAttrsRecursive :: ([String] -> a -> b) -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1169">lib/attrsets.nix:1169</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.mapAttrsRecursiveCond"><code>lib.attrsets.mapAttrsRecursiveCond</code></h2>
|
||
<p>Like <code>mapAttrsRecursive</code>, but it takes an additional predicate that tells it whether to recurse into an attribute set.
|
||
If the predicate returns false, <code>mapAttrsRecursiveCond</code> does not recurse, but instead applies the mapping function.
|
||
If the predicate returns true, it does recurse, and does not apply the mapping function.</p>
|
||
<p>{#map-attrs-recursive-cond-example .example}</p>
|
||
<h3 id="map-over-an-leaf-attributes-defined-by-a-condition">Map over an leaf attributes defined by a condition</h3>
|
||
<p>Map derivations to their <code>name</code> attribute.
|
||
Derivatons are identified as attribute sets that contain <code>{ type = "derivation"; }</code>.
|
||
<div class="highlight"><pre><span></span><code>mapAttrsRecursiveCond
|
||
<span class="p">(</span>as<span class="p">:</span> <span class="o">!</span><span class="p">(</span>as <span class="o">?</span> <span class="s2">"type"</span> <span class="o">&&</span> as<span class="o">.</span><span class="ss">type</span> <span class="o">==</span> <span class="s2">"derivation"</span><span class="p">))</span>
|
||
<span class="p">(</span>x<span class="p">:</span> x<span class="o">.</span>name<span class="p">)</span>
|
||
attrs
|
||
</code></pre></div></p>
|
||
<h3 id="type_24">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>mapAttrsRecursiveCond :: (AttrSet -> Bool) -> ([String] -> a -> b) -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1198">lib/attrsets.nix:1198</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.genAttrs"><code>lib.attrsets.genAttrs</code></h2>
|
||
<p>Generate an attribute set by mapping a function over a list of
|
||
attribute names.</p>
|
||
<h3 id="inputs_21">Inputs</h3>
|
||
<p><code>names</code></p>
|
||
<p>: Names of values in the resulting attribute set.</p>
|
||
<p><code>f</code></p>
|
||
<p>: A function, given the name of the attribute, returns the attribute's value.</p>
|
||
<h3 id="type_25">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>genAttrs :: [ String ] -> (String -> Any) -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_23">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.genAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>genAttrs <span class="p">[</span> <span class="s2">"foo"</span> <span class="s2">"bar"</span> <span class="p">]</span> <span class="p">(</span>name<span class="p">:</span> <span class="s2">"x_"</span> <span class="o">+</span> name<span class="p">)</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">foo</span> <span class="o">=</span> <span class="s2">"x_foo"</span><span class="p">;</span> <span class="ss">bar</span> <span class="o">=</span> <span class="s2">"x_bar"</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1245">lib/attrsets.nix:1245</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.isDerivation"><code>lib.attrsets.isDerivation</code></h2>
|
||
<p>Check whether the argument is a derivation. Any set with
|
||
<code>{ type = "derivation"; }</code> counts as a derivation.</p>
|
||
<h3 id="inputs_22">Inputs</h3>
|
||
<p><code>value</code></p>
|
||
<p>: Value to check.</p>
|
||
<h3 id="type_26">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>isDerivation :: Any -> Bool
|
||
</code></pre></div>
|
||
<h3 id="examples_24">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.isDerivation</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="ss">nixpkgs</span> <span class="o">=</span> <span class="nb">import</span> <span class="l"><nixpkgs></span> <span class="p">{}</span>
|
||
isDerivation nixpkgs<span class="o">.</span><span class="ss">ruby</span>
|
||
<span class="o">=></span> <span class="no">true</span>
|
||
isDerivation <span class="s2">"foobar"</span>
|
||
<span class="o">=></span> <span class="no">false</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1282">lib/attrsets.nix:1282</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.toDerivation"><code>lib.attrsets.toDerivation</code></h2>
|
||
<p>Converts a store path to a fake derivation.</p>
|
||
<h3 id="inputs_23">Inputs</h3>
|
||
<p><code>path</code></p>
|
||
<p>: A store path to convert to a derivation.</p>
|
||
<h3 id="type_27">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>toDerivation :: Path -> Derivation
|
||
</code></pre></div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1301">lib/attrsets.nix:1301</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.optionalAttrs"><code>lib.attrsets.optionalAttrs</code></h2>
|
||
<p>If <code>cond</code> is true, return the attribute set <code>as</code>,
|
||
otherwise an empty attribute set.</p>
|
||
<h3 id="inputs_24">Inputs</h3>
|
||
<p><code>cond</code></p>
|
||
<p>: Condition under which the <code>as</code> attribute set is returned.</p>
|
||
<p><code>as</code></p>
|
||
<p>: The attribute set to return if <code>cond</code> is <code>true</code>.</p>
|
||
<h3 id="type_28">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>optionalAttrs :: Bool -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_25">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.optionalAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>optionalAttrs <span class="p">(</span><span class="no">true</span><span class="p">)</span> <span class="p">{</span> <span class="ss">my</span> <span class="o">=</span> <span class="s2">"set"</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">my</span> <span class="o">=</span> <span class="s2">"set"</span><span class="p">;</span> <span class="p">}</span>
|
||
optionalAttrs <span class="p">(</span><span class="no">false</span><span class="p">)</span> <span class="p">{</span> <span class="ss">my</span> <span class="o">=</span> <span class="s2">"set"</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1350">lib/attrsets.nix:1350</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.zipAttrsWithNames"><code>lib.attrsets.zipAttrsWithNames</code></h2>
|
||
<p>Merge sets of attributes and use the function <code>f</code> to merge attributes
|
||
values.</p>
|
||
<h3 id="inputs_25">Inputs</h3>
|
||
<p><code>names</code></p>
|
||
<p>: List of attribute names to zip.</p>
|
||
<p><code>f</code></p>
|
||
<p>: A function, accepts an attribute name, all the values, and returns a combined value.</p>
|
||
<p><code>sets</code></p>
|
||
<p>: List of values from the list of attribute sets.</p>
|
||
<h3 id="type_29">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>zipAttrsWithNames :: [ String ] -> (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_26">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.zipAttrsWithNames</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>zipAttrsWithNames <span class="p">[</span><span class="s2">"a"</span><span class="p">]</span> <span class="p">(</span>name<span class="p">:</span> vs<span class="p">:</span> vs<span class="p">)</span> <span class="p">[{</span><span class="ss">a</span> <span class="o">=</span> <span class="s2">"x"</span><span class="p">;}</span> <span class="p">{</span><span class="ss">a</span> <span class="o">=</span> <span class="s2">"y"</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="s2">"z"</span><span class="p">;}]</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"x"</span> <span class="s2">"y"</span><span class="p">];</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1392">lib/attrsets.nix:1392</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.zipAttrsWith"><code>lib.attrsets.zipAttrsWith</code></h2>
|
||
<p>Merge sets of attributes and use the function f to merge attribute values.
|
||
Like <code>lib.attrsets.zipAttrsWithNames</code> with all key names are passed for <code>names</code>.</p>
|
||
<p>Implementation note: Common names appear multiple times in the list of
|
||
names, hopefully this does not affect the system because the maximal
|
||
laziness avoid computing twice the same expression and <code>listToAttrs</code> does
|
||
not care about duplicated attribute names.</p>
|
||
<h3 id="type_30">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>zipAttrsWith :: (String -> [ Any ] -> Any) -> [ AttrSet ] -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_27">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.zipAttrsWith</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>zipAttrsWith <span class="p">(</span>name<span class="p">:</span> values<span class="p">:</span> values<span class="p">)</span> <span class="p">[{</span><span class="ss">a</span> <span class="o">=</span> <span class="s2">"x"</span><span class="p">;}</span> <span class="p">{</span><span class="ss">a</span> <span class="o">=</span> <span class="s2">"y"</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="s2">"z"</span><span class="p">;}]</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"x"</span> <span class="s2">"y"</span><span class="p">];</span> <span class="ss">b</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"z"</span><span class="p">];</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1428">lib/attrsets.nix:1428</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.zipAttrs"><code>lib.attrsets.zipAttrs</code></h2>
|
||
<p>Merge sets of attributes and combine each attribute value in to a list.</p>
|
||
<p>Like <code>lib.attrsets.zipAttrsWith</code> with <code>(name: values: values)</code> as the function.</p>
|
||
<h3 id="type_31">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>zipAttrs :: [ AttrSet ] -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_28">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.zipAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>zipAttrs <span class="p">[{</span><span class="ss">a</span> <span class="o">=</span> <span class="s2">"x"</span><span class="p">;}</span> <span class="p">{</span><span class="ss">a</span> <span class="o">=</span> <span class="s2">"y"</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="s2">"z"</span><span class="p">;}]</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"x"</span> <span class="s2">"y"</span><span class="p">];</span> <span class="ss">b</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"z"</span><span class="p">];</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1454">lib/attrsets.nix:1454</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.mergeAttrsList"><code>lib.attrsets.mergeAttrsList</code></h2>
|
||
<p>Merge a list of attribute sets together using the <code>//</code> operator.
|
||
In case of duplicate attributes, values from later list elements take precedence over earlier ones.
|
||
The result is the same as <code>foldl mergeAttrs { }</code>, but the performance is better for large inputs.
|
||
For n list elements, each with an attribute set containing m unique attributes, the complexity of this operation is O(nm log n).</p>
|
||
<h3 id="inputs_26">Inputs</h3>
|
||
<p><code>list</code></p>
|
||
<p>: 1. Function argument</p>
|
||
<h3 id="type_32">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>mergeAttrsList :: [ Attrs ] -> Attrs
|
||
</code></pre></div>
|
||
<h3 id="examples_29">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.mergeAttrsList</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>mergeAttrsList <span class="p">[</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">}</span> <span class="p">{</span> <span class="ss">c</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="ss">d</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="p">}</span> <span class="p">]</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">c</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="ss">d</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="p">}</span>
|
||
mergeAttrsList <span class="p">[</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="p">}</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">}</span> <span class="p">]</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1488">lib/attrsets.nix:1488</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.recursiveUpdateUntil"><code>lib.attrsets.recursiveUpdateUntil</code></h2>
|
||
<p>Does the same as the update operator '//' except that attributes are
|
||
merged until the given predicate is verified. The predicate should
|
||
accept 3 arguments which are the path to reach the attribute, a part of
|
||
the first attribute set and a part of the second attribute set. When
|
||
the predicate is satisfied, the value of the first attribute set is
|
||
replaced by the value of the second attribute set.</p>
|
||
<h3 id="inputs_27">Inputs</h3>
|
||
<p><code>pred</code></p>
|
||
<p>: Predicate, taking the path to the current attribute as a list of strings for attribute names, and the two values at that path from the original arguments.</p>
|
||
<p><code>lhs</code></p>
|
||
<p>: Left attribute set of the merge.</p>
|
||
<p><code>rhs</code></p>
|
||
<p>: Right attribute set of the merge.</p>
|
||
<h3 id="type_33">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>recursiveUpdateUntil :: ( [ String ] -> AttrSet -> AttrSet -> Bool ) -> AttrSet -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_30">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.recursiveUpdateUntil</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>recursiveUpdateUntil <span class="p">(</span>path<span class="p">:</span> l<span class="p">:</span> r<span class="p">:</span> <span class="ss">path</span> <span class="o">==</span> <span class="p">[</span><span class="s2">"foo"</span><span class="p">])</span> <span class="p">{</span>
|
||
<span class="c1"># first attribute set</span>
|
||
foo<span class="o">.</span><span class="ss">bar</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
|
||
foo<span class="o">.</span><span class="ss">baz</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
|
||
<span class="ss">bar</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span>
|
||
<span class="p">}</span> <span class="p">{</span>
|
||
<span class="c1">#second attribute set</span>
|
||
foo<span class="o">.</span><span class="ss">bar</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
|
||
foo<span class="o">.</span><span class="ss">quz</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span>
|
||
<span class="ss">baz</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
|
||
<span class="o">=></span> <span class="p">{</span>
|
||
foo<span class="o">.</span><span class="ss">bar</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="c1"># 'foo.*' from the second set</span>
|
||
foo<span class="o">.</span><span class="ss">quz</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="c1">#</span>
|
||
<span class="ss">bar</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="c1"># 'bar' from the first set</span>
|
||
<span class="ss">baz</span> <span class="o">=</span> <span class="mi">4</span><span class="p">;</span> <span class="c1"># 'baz' from the second set</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1566">lib/attrsets.nix:1566</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.recursiveUpdate"><code>lib.attrsets.recursiveUpdate</code></h2>
|
||
<p>A recursive variant of the update operator ‘//’. The recursion
|
||
stops when one of the attribute values is not an attribute set,
|
||
in which case the right hand side value takes precedence over the
|
||
left hand side value.</p>
|
||
<h3 id="inputs_28">Inputs</h3>
|
||
<p><code>lhs</code></p>
|
||
<p>: Left attribute set of the merge.</p>
|
||
<p><code>rhs</code></p>
|
||
<p>: Right attribute set of the merge.</p>
|
||
<h3 id="type_34">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>recursiveUpdate :: AttrSet -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_31">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.recursiveUpdate</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>recursiveUpdate <span class="p">{</span>
|
||
boot<span class="o">.</span>loader<span class="o">.</span>grub<span class="o">.</span><span class="ss">enable</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
|
||
boot<span class="o">.</span>loader<span class="o">.</span>grub<span class="o">.</span><span class="ss">device</span> <span class="o">=</span> <span class="s2">"/dev/hda"</span><span class="p">;</span>
|
||
<span class="p">}</span> <span class="p">{</span>
|
||
boot<span class="o">.</span>loader<span class="o">.</span>grub<span class="o">.</span><span class="ss">device</span> <span class="o">=</span> <span class="s2">""</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
|
||
returns<span class="p">:</span> <span class="p">{</span>
|
||
boot<span class="o">.</span>loader<span class="o">.</span>grub<span class="o">.</span><span class="ss">enable</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
|
||
boot<span class="o">.</span>loader<span class="o">.</span>grub<span class="o">.</span><span class="ss">device</span> <span class="o">=</span> <span class="s2">""</span><span class="p">;</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1625">lib/attrsets.nix:1625</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.matchAttrs"><code>lib.attrsets.matchAttrs</code></h2>
|
||
<p>Recurse into every attribute set of the first argument and check that:
|
||
- Each attribute path also exists in the second argument.
|
||
- If the attribute's value is not a nested attribute set, it must have the same value in the right argument.</p>
|
||
<h3 id="inputs_29">Inputs</h3>
|
||
<p><code>pattern</code></p>
|
||
<p>: Attribute set structure to match</p>
|
||
<p><code>attrs</code></p>
|
||
<p>: Attribute set to check</p>
|
||
<h3 id="type_35">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>matchAttrs :: AttrSet -> AttrSet -> Bool
|
||
</code></pre></div>
|
||
<h3 id="examples_32">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.matchAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>matchAttrs <span class="p">{</span> <span class="ss">cpu</span> <span class="o">=</span> <span class="p">{};</span> <span class="p">}</span> <span class="p">{</span> <span class="ss">cpu</span> <span class="o">=</span> <span class="p">{</span> <span class="ss">bits</span> <span class="o">=</span> <span class="mi">64</span><span class="p">;</span> <span class="p">};</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="no">true</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1664">lib/attrsets.nix:1664</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.overrideExisting"><code>lib.attrsets.overrideExisting</code></h2>
|
||
<p>Override only the attributes that are already present in the old set
|
||
useful for deep-overriding.</p>
|
||
<h3 id="inputs_30">Inputs</h3>
|
||
<p><code>old</code></p>
|
||
<p>: Original attribute set</p>
|
||
<p><code>new</code></p>
|
||
<p>: Attribute set with attributes to override in <code>old</code>.</p>
|
||
<h3 id="type_36">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>overrideExisting :: AttrSet -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_33">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.overrideExisting</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>overrideExisting <span class="p">{}</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{}</span>
|
||
overrideExisting <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span>
|
||
overrideExisting <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">3</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="p">}</span>
|
||
<span class="o">=></span> <span class="p">{</span> <span class="ss">a</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="ss">b</span> <span class="o">=</span> <span class="mi">2</span><span class="p">;</span> <span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1720">lib/attrsets.nix:1720</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.showAttrPath"><code>lib.attrsets.showAttrPath</code></h2>
|
||
<p>Turns a list of strings into a human-readable description of those
|
||
strings represented as an attribute path. The result of this function is
|
||
not intended to be machine-readable.
|
||
Create a new attribute set with <code>value</code> set at the nested attribute location specified in <code>attrPath</code>.</p>
|
||
<h3 id="inputs_31">Inputs</h3>
|
||
<p><code>path</code></p>
|
||
<p>: Attribute path to render to a string</p>
|
||
<h3 id="type_37">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>showAttrPath :: [String] -> String
|
||
</code></pre></div>
|
||
<h3 id="examples_34">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.showAttrPath</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code>showAttrPath <span class="p">[</span> <span class="s2">"foo"</span> <span class="s2">"10"</span> <span class="s2">"bar"</span> <span class="p">]</span>
|
||
<span class="o">=></span> <span class="s2">"foo.</span><span class="se">\"</span><span class="s2">10</span><span class="se">\"</span><span class="s2">.bar"</span>
|
||
showAttrPath <span class="p">[]</span>
|
||
<span class="o">=></span> <span class="s2">"<root attribute path>"</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1758">lib/attrsets.nix:1758</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.getOutput"><code>lib.attrsets.getOutput</code></h2>
|
||
<p>Get a package output.
|
||
If no output is found, fallback to <code>.out</code> and then to the default.
|
||
The function is idempotent: <code>getOutput "b" (getOutput "a" p) == getOutput "a" p</code>.</p>
|
||
<h3 id="inputs_32">Inputs</h3>
|
||
<p><code>output</code></p>
|
||
<p>: 1. Function argument</p>
|
||
<p><code>pkg</code></p>
|
||
<p>: 2. Function argument</p>
|
||
<h3 id="type_38">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>getOutput :: String -> :: Derivation -> Derivation
|
||
</code></pre></div>
|
||
<h3 id="examples_35">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.getOutput</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="s2">"</span><span class="si">${</span>getOutput <span class="s2">"dev"</span> pkgs<span class="o">.</span>openssl<span class="si">}</span><span class="s2">"</span>
|
||
<span class="o">=></span> <span class="s2">"/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev"</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1797">lib/attrsets.nix:1797</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.getFirstOutput"><code>lib.attrsets.getFirstOutput</code></h2>
|
||
<p>Get the first of the <code>outputs</code> provided by the package, or the default.
|
||
This function is alligned with <code>_overrideFirst()</code> from the <code>multiple-outputs.sh</code> setup hook.
|
||
Like <code>getOutput</code>, the function is idempotent.</p>
|
||
<h3 id="inputs_33">Inputs</h3>
|
||
<p><code>outputs</code></p>
|
||
<p>: 1. Function argument</p>
|
||
<p><code>pkg</code></p>
|
||
<p>: 2. Function argument</p>
|
||
<h3 id="type_39">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>getFirstOutput :: [String] -> Derivation -> Derivation
|
||
</code></pre></div>
|
||
<h3 id="examples_36">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.getFirstOutput</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="s2">"</span><span class="si">${</span>getFirstOutput <span class="p">[</span> <span class="s2">"include"</span> <span class="s2">"dev"</span> <span class="p">]</span> pkgs<span class="o">.</span>openssl<span class="si">}</span><span class="s2">"</span>
|
||
<span class="o">=></span> <span class="s2">"/nix/store/00000000000000000000000000000000-openssl-1.0.1r-dev"</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1834">lib/attrsets.nix:1834</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.getBin"><code>lib.attrsets.getBin</code></h2>
|
||
<p>Get a package's <code>bin</code> output.
|
||
If the output does not exist, fallback to <code>.out</code> and then to the default.</p>
|
||
<h3 id="inputs_34">Inputs</h3>
|
||
<p><code>pkg</code></p>
|
||
<p>: The package whose <code>bin</code> output will be retrieved.</p>
|
||
<h3 id="type_40">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>getBin :: Derivation -> Derivation
|
||
</code></pre></div>
|
||
<h3 id="examples_37">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.getBin</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="s2">"</span><span class="si">${</span>getBin pkgs<span class="o">.</span>openssl<span class="si">}</span><span class="s2">"</span>
|
||
<span class="o">=></span> <span class="s2">"/nix/store/00000000000000000000000000000000-openssl-1.0.1r"</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1872">lib/attrsets.nix:1872</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.getLib"><code>lib.attrsets.getLib</code></h2>
|
||
<p>Get a package's <code>lib</code> output.
|
||
If the output does not exist, fallback to <code>.out</code> and then to the default.</p>
|
||
<h3 id="inputs_35">Inputs</h3>
|
||
<p><code>pkg</code></p>
|
||
<p>: The package whose <code>lib</code> output will be retrieved.</p>
|
||
<h3 id="type_41">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>getLib :: Derivation -> Derivation
|
||
</code></pre></div>
|
||
<h3 id="examples_38">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.getLib</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="s2">"</span><span class="si">${</span>getLib pkgs<span class="o">.</span>openssl<span class="si">}</span><span class="s2">"</span>
|
||
<span class="o">=></span> <span class="s2">"/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-lib"</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1902">lib/attrsets.nix:1902</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.getStatic"><code>lib.attrsets.getStatic</code></h2>
|
||
<p>Get a package's <code>static</code> output.
|
||
If the output does not exist, fallback to <code>.lib</code>, then to <code>.out</code>, and then to the default.</p>
|
||
<h3 id="inputs_36">Inputs</h3>
|
||
<p><code>pkg</code></p>
|
||
<p>: The package whose <code>static</code> output will be retrieved.</p>
|
||
<h3 id="type_42">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>getStatic :: Derivation -> Derivation
|
||
</code></pre></div>
|
||
<h3 id="examples_39">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.getStatic</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="s2">"</span><span class="si">${</span>lib<span class="o">.</span>getStatic pkgs<span class="o">.</span>glibc<span class="si">}</span><span class="s2">"</span>
|
||
<span class="o">=></span> <span class="s2">"/nix/store/00000000000000000000000000000000-glibc-2.39-52-static"</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1931">lib/attrsets.nix:1931</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.getDev"><code>lib.attrsets.getDev</code></h2>
|
||
<p>Get a package's <code>dev</code> output.
|
||
If the output does not exist, fallback to <code>.out</code> and then to the default.</p>
|
||
<h3 id="inputs_37">Inputs</h3>
|
||
<p><code>pkg</code></p>
|
||
<p>: The package whose <code>dev</code> output will be retrieved.</p>
|
||
<h3 id="type_43">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>getDev :: Derivation -> Derivation
|
||
</code></pre></div>
|
||
<h3 id="examples_40">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.getDev</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="s2">"</span><span class="si">${</span>getDev pkgs<span class="o">.</span>openssl<span class="si">}</span><span class="s2">"</span>
|
||
<span class="o">=></span> <span class="s2">"/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev"</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1961">lib/attrsets.nix:1961</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.getInclude"><code>lib.attrsets.getInclude</code></h2>
|
||
<p>Get a package's <code>include</code> output.
|
||
If the output does not exist, fallback to <code>.dev</code>, then to <code>.out</code>, and then to the default.</p>
|
||
<h3 id="inputs_38">Inputs</h3>
|
||
<p><code>pkg</code></p>
|
||
<p>: The package whose <code>include</code> output will be retrieved.</p>
|
||
<h3 id="type_44">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>getInclude :: Derivation -> Derivation
|
||
</code></pre></div>
|
||
<h3 id="examples_41">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.getInclude</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="s2">"</span><span class="si">${</span>getInclude pkgs<span class="o">.</span>openssl<span class="si">}</span><span class="s2">"</span>
|
||
<span class="o">=></span> <span class="s2">"/nix/store/00000000000000000000000000000000-openssl-1.0.1r-dev"</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L1990">lib/attrsets.nix:1990</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.getMan"><code>lib.attrsets.getMan</code></h2>
|
||
<p>Get a package's <code>man</code> output.
|
||
If the output does not exist, fallback to <code>.out</code> and then to the default.</p>
|
||
<h3 id="inputs_39">Inputs</h3>
|
||
<p><code>pkg</code></p>
|
||
<p>: The package whose <code>man</code> output will be retrieved.</p>
|
||
<h3 id="type_45">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>getMan :: Derivation -> Derivation
|
||
</code></pre></div>
|
||
<h3 id="examples_42">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.getMan</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="s2">"</span><span class="si">${</span>getMan pkgs<span class="o">.</span>openssl<span class="si">}</span><span class="s2">"</span>
|
||
<span class="o">=></span> <span class="s2">"/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-man"</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L2020">lib/attrsets.nix:2020</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.chooseDevOutputs"><code>lib.attrsets.chooseDevOutputs</code></h2>
|
||
<p>Pick the outputs of packages to place in <code>buildInputs</code></p>
|
||
<h3 id="inputs_40">Inputs</h3>
|
||
<p><code>pkgs</code></p>
|
||
<p>: List of packages.</p>
|
||
<h3 id="type_46">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>chooseDevOutputs :: [Derivation] -> [Derivation]
|
||
</code></pre></div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L2037">lib/attrsets.nix:2037</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.recurseIntoAttrs"><code>lib.attrsets.recurseIntoAttrs</code></h2>
|
||
<p>Make various Nix tools consider the contents of the resulting
|
||
attribute set when looking for what to build, find, etc.</p>
|
||
<p>This function only affects a single attribute set; it does not
|
||
apply itself recursively for nested attribute sets.</p>
|
||
<h3 id="inputs_41">Inputs</h3>
|
||
<p><code>attrs</code></p>
|
||
<p>: An attribute set to scan for derivations.</p>
|
||
<h3 id="type_47">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>recurseIntoAttrs :: AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<h3 id="examples_43">Examples</h3>
|
||
<div class="admonition example">
|
||
<p class="admonition-title"><code>lib.attrsets.recurseIntoAttrs</code> usage example</p>
|
||
<div class="highlight"><pre><span></span><code><span class="p">{</span> pkgs <span class="o">?</span> <span class="nb">import</span> <span class="l"><nixpkgs></span> <span class="p">{}</span> <span class="p">}:</span>
|
||
<span class="p">{</span>
|
||
<span class="ss">myTools</span> <span class="o">=</span> pkgs<span class="o">.</span>lib<span class="o">.</span>recurseIntoAttrs <span class="p">{</span>
|
||
<span class="k">inherit</span> <span class="p">(</span>pkgs<span class="p">)</span> hello figlet<span class="p">;</span>
|
||
<span class="p">};</span>
|
||
<span class="p">}</span>
|
||
</code></pre></div>
|
||
</div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L2074">lib/attrsets.nix:2074</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.dontRecurseIntoAttrs"><code>lib.attrsets.dontRecurseIntoAttrs</code></h2>
|
||
<p>Undo the effect of recurseIntoAttrs.</p>
|
||
<h3 id="inputs_42">Inputs</h3>
|
||
<p><code>attrs</code></p>
|
||
<p>: An attribute set to not scan for derivations.</p>
|
||
<h3 id="type_48">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>dontRecurseIntoAttrs :: AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L2094">lib/attrsets.nix:2094</a> in <code><nixpkgs></code>.</p>
|
||
<h2 id="function-library-lib.attrsets.unionOfDisjoint"><code>lib.attrsets.unionOfDisjoint</code></h2>
|
||
<p><code>unionOfDisjoint x y</code> is equal to <code>x // y // z</code> where the
|
||
attrnames in <code>z</code> are the intersection of the attrnames in <code>x</code> and
|
||
<code>y</code>, and all values <code>assert</code> with an error message. This
|
||
operator is commutative, unlike (//).</p>
|
||
<h3 id="inputs_43">Inputs</h3>
|
||
<p><code>x</code></p>
|
||
<p>: 1. Function argument</p>
|
||
<p><code>y</code></p>
|
||
<p>: 2. Function argument</p>
|
||
<h3 id="type_49">Type</h3>
|
||
<div class="highlight"><pre><span></span><code>unionOfDisjoint :: AttrSet -> AttrSet -> AttrSet
|
||
</code></pre></div>
|
||
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/attrsets.nix#L2121">lib/attrsets.nix:2121</a> in <code><nixpkgs></code>.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</article>
|
||
</div>
|
||
|
||
|
||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
||
</div>
|
||
|
||
</main>
|
||
|
||
<footer class="md-footer">
|
||
|
||
<div class="md-footer-meta md-typeset">
|
||
<div class="md-footer-meta__inner md-grid">
|
||
<div class="md-copyright">
|
||
|
||
<div class="md-copyright__highlight">
|
||
Licenced MIT
|
||
</div>
|
||
|
||
|
||
Made with
|
||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
||
Material for MkDocs
|
||
</a>
|
||
|
||
</div>
|
||
|
||
<div class="md-social">
|
||
|
||
|
||
|
||
|
||
|
||
<a href="https://git.auxolotl.org/auxolotl/docs" target="_blank" rel="noopener" title="Aux Docs Repo" class="md-social__link">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422 2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24 2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389 1.194 1.194 0 0 0 0-2.389Z"/></svg>
|
||
</a>
|
||
|
||
|
||
|
||
|
||
|
||
<a href="https://forum.aux.computer/" target="_blank" rel="noopener" title="Aux Forum" class="md-social__link">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0zm.116 4.563a7.395 7.395 0 0 0-6.337 3.57 7.247 7.247 0 0 0-.148 7.22L4.4 19.61l4.794-1.074a7.424 7.424 0 0 0 8.136-1.39 7.256 7.256 0 0 0 1.737-7.997 7.375 7.375 0 0 0-6.84-4.585h-.008z"/></svg>
|
||
</a>
|
||
|
||
|
||
|
||
|
||
|
||
<a href="https://wiki.auxolotl.org/" target="_blank" rel="noopener" title="Aux Wiki" class="md-social__link">
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.801 13.557c.148.098.288.202.417.313 1.854 1.6 3.127 4.656 2.582 7.311-1.091-.255-5.747-1.055-7.638-3.383-.91-1.12-1.366-2.081-1.569-2.885a5.65 5.65 0 0 0 .034-.219c.089.198.197.35.313.466.24.24.521.335.766.372.304.046.594-.006.806-.068l.001.001c.05-.015.433-.116.86-.342.325-.173 2.008-.931 3.428-1.566Zm-7.384 1.435C9.156 16.597 6.6 18.939.614 18.417c.219-1.492 1.31-3.019 2.51-4.11.379-.345.906-.692 1.506-1.009.286.168.598.332.939.486 2.689 1.221 3.903 1.001 4.89.573a1.3 1.3 0 0 0 .054-.025 6.156 6.156 0 0 0-.096.66Zm4.152-.462c.38-.341.877-.916 1.383-1.559-.389-.15-.866-.371-1.319-.591-.598-.29-1.305-.283-2.073-.315a4.685 4.685 0 0 1-.804-.103c.014-.123.027-.246.038-.369.062.104.673.057.871.057.354 0 1.621.034 3.074-.574 1.452-.608 2.55-1.706 3.022-3.225.474-1.52.22-3.091-.168-3.952-.169.709-1.453 2.381-1.926 2.871-.473.489-2.381 2.296-2.972 2.921-.7.74-.688.793-1.332 1.302-.202.19-.499.402-.563.53.027-.338.039-.675.027-.997a7.653 7.653 0 0 0-.032-.523c.322-.059.567-.522.567-.861 0-.224-.106-.247-.271-.229.075-.894.382-3.923 1.254-4.281.218.109.831.068.649-.295-.182-.364-.825-.074-1.081.266-.28.374-.956 2.046-.92 4.324-.113.014-.174.033-.322.033-.171 0-.321-.04-.433-.05.034-2.275-.714-3.772-.84-4.169-.12-.375-.491-.596-.781-.596-.146 0-.272.056-.333.179-.182.363.459.417.677.308.706.321 1.156 3.519 1.254 4.277-.125-.006-.199.035-.199.233 0 .311.17.756.452.843a.442.442 0 0 0-.007.03s-.287.99-.413 2.189a4.665 4.665 0 0 1-.718-.225c-.714-.286-1.355-.583-2.019-.566-.664.018-1.366.023-1.804-.036-.438-.058-.649-.15-.649-.15s-.234.365.257 1.075c.42.607 1.055 1.047 1.644 1.18.589.134 1.972.18 2.785-.377.16-.109.317-.228.459-.34a8.717 8.717 0 0 0-.013.626c-.289.753-.571 1.993-.268 3.338 0-.001.701-.842.787-2.958.006-.144.009-.271.01-.383.052-.248.103-.518.148-.799.072.135.151.277.234.413.511.842 1.791 1.37 2.383 1.49.091.019.187.032.285.038Zm-1.12.745c-.188.055-.445.1-.713.059-.21-.031-.45-.11-.655-.316-.169-.168-.312-.419-.401-.789a9.837 9.837 0 0 0 .039-.82l.049-.243c.563.855 1.865 1.398 2.476 1.522.036.008.072.014.109.02l-.013.009c-.579.415-.76.503-.891.558Zm6.333-2.818c-.257.114-4.111 1.822-5.246 2.363.98-.775 3.017-3.59 3.699-4.774 1.062.661 1.468 1.109 1.623 1.441.101.217.09.38.096.515a.57.57 0 0 1-.172.455Zm-9.213 1.62a1.606 1.606 0 0 1-.19.096c-.954.414-2.126.61-4.728-.571-2.023-.918-3.024-2.157-3.371-2.666.476.161 1.471.473 2.157.524.282.021.703.068 1.167.125.021.209.109.486.345.829l.001.001c.451.651 1.134 1.119 1.765 1.262.622.141 2.083.182 2.942-.407a3.12 3.12 0 0 0 .132-.093l.001.179a6.052 6.052 0 0 0-.221.721Zm5.512-1.271a17.49 17.49 0 0 1-1.326-.589c.437.042 1.054.083 1.692.108-.121.162-.244.323-.366.481Zm.932-1.26c-.12.17-.245.343-.373.517-.241.018-.478.03-.709.038a29.05 29.05 0 0 1-.741-.048c.608-.065 1.228-.252 1.823-.507Zm.22-.315c-.809.382-1.679.648-2.507.648-.472 0-.833.018-1.139.039v.001c-.324-.031-.665-.039-1.019-.054a3.555 3.555 0 0 1-.152-.009c.102-.002.192-.006.249-.006.363 0 1.662.034 3.151-.589 1.508-.632 2.645-1.773 3.136-3.351.37-1.186.31-2.402.086-3.312.458-.336.86-.651 1.147-.91.501-.451.743-.733.848-.869.199.206.714.864.685 2.138-.036 1.611-.606 3.187-1.501 4.154a9.099 9.099 0 0 1-1.321 1.132 11.978 11.978 0 0 0-.644-.422l-.089-.055-.051.091c-.184.332-.5.825-.879 1.374ZM4.763 5.817c-.157 1.144.113 2.323.652 3.099.539.776 2.088 2.29 3.614 2.505.991.14 2.055.134 2.055.134s-.593-.576-1.114-1.66c-.521-1.085-.948-2.104-1.734-2.786-.785-.681-1.601-1.416-2.045-1.945-.444-.53-.59-.86-.59-.86s-.656.175-.838 1.513Zm14.301 4.549a9.162 9.162 0 0 0 1.3-1.12c.326-.352.611-.782.845-1.265 1.315.145 2.399.371 2.791.434 0 0-.679 1.971-3.945 3.022l-.016-.035c-.121-.26-.385-.594-.975-1.036Zm-11.634.859a8.537 8.537 0 0 1-.598-.224c-1.657-.693-2.91-1.944-3.449-3.678-.498-1.601-.292-3.251.091-4.269.225.544.758 1.34 1.262 2.01a3.58 3.58 0 0 0-.172.726c-.163 1.197.123 2.428.687 3.24.416.599 1.417 1.62 2.555 2.193-.128.002-.253.003-.376.002Zm-1.758-.077c-.958-.341-1.901-.787-2.697-1.368C-.07 7.559 0 6.827 0 6.827s1.558-.005 3.088.179c.03.126.065.251.104.377.557 1.791 1.851 3.086 3.562 3.803l.047.019a4.254 4.254 0 0 1-.267-.026h-.001c-.401-.053-.595-.135-.595-.135l-.157-.069-.092.144-.017.029Zm6.807-1.59c.086.017.136.058.136.145 0 .197-.242.5-.597.597l-.01-.161a.887.887 0 0 0 .283-.243c.078-.099.142-.217.188-.338Zm-1.591.006c.033.1.076.197.129.282.061.097.134.18.217.24l-.021.083c-.276-.093-.424-.293-.424-.466 0-.078.035-.119.099-.139Zm-.025-.664c-.275-.816-.795-2.022-1.505-2.179-.296.072-.938.096-.691-.145.246-.24 1.085-.048 1.283.217.145.194.744.806 1.011 1.737l.032.227a.324.324 0 0 0-.13.143Zm1.454-.266c.251-.99.889-1.639 1.039-1.841.197-.265 1.036-.457 1.283-.217.247.241-.395.217-.691.145-.69.152-1.2 1.296-1.481 2.109a.364.364 0 0 0-.067-.059.37.37 0 0 0-.092-.043l.009-.094Zm4.802-2.708a9.875 9.875 0 0 1-.596.705c-.304.315-1.203 1.176-1.963 1.916.647-.955 1.303-1.806 2.184-2.376.123-.08.249-.161.375-.245Z"/></svg>
|
||
</a>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
</div>
|
||
<div class="md-dialog" data-md-component="dialog">
|
||
<div class="md-dialog__inner md-typeset"></div>
|
||
</div>
|
||
|
||
|
||
<script id="__config" type="application/json">{"base": "../../..", "features": ["content.tooltips", "search.highlight", "navigation.tabs", "navigation.indexes", "navigation.prune"], "search": "../../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
||
|
||
|
||
<script src="../../../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
|
||
|
||
|
||
</body>
|
||
</html> |