docs/Nixpkgs/Library-Reference/strings/index.html

3339 lines
118 KiB
HTML
Raw Blame History

<!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/strings/">
<link rel="prev" href="../sources/">
<link rel="next" href="../trivial/">
<link rel="icon" href="../../../assets/aux-logo.svg">
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.29">
<title>lib.strings: string manipulation 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.strings: string manipulation functions {#sec-functions-library-strings} - Aux Docs" >
<meta property="og:description" content="Aux Documentation" >
<meta property="og:image" content="https://docs.auxolotl.org/assets/images/social/Nixpkgs/Library-Reference/strings.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/strings/" >
<meta name="twitter:card" content="summary_large_image" >
<meta name="twitter:title" content="lib.strings: string manipulation functions {#sec-functions-library-strings} - Aux Docs" >
<meta name="twitter:description" content="Aux Documentation" >
<meta name="twitter:image" content="https://docs.auxolotl.org/assets/images/social/Nixpkgs/Library-Reference/strings.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-strings" 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.strings: string manipulation 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">
<a href="../attrsets/" class="md-nav__link">
<span class="md-ellipsis">
lib.attrsets: attribute set functions
</span>
</a>
</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 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.strings: string manipulation 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.strings: string manipulation 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.strings.concatStrings" class="md-nav__link">
<span class="md-ellipsis">
lib.strings.concatStrings
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.strings.concatMapStrings" class="md-nav__link">
<span class="md-ellipsis">
lib.strings.concatMapStrings
</span>
</a>
</li>
</ul>
</nav>
</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.strings.concatStrings" class="md-nav__link">
<span class="md-ellipsis">
lib.strings.concatStrings
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#function-library-lib.strings.concatMapStrings" class="md-nav__link">
<span class="md-ellipsis">
lib.strings.concatMapStrings
</span>
</a>
</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-strings">lib.strings: string manipulation functions</h1>
<p>String manipulation functions.</p>
<h2 id="function-library-lib.strings.concatStrings"><code>lib.strings.concatStrings</code></h2>
<p><strong>Type</strong>: <code>concatStrings :: [string] -&gt; string</code></p>
<p>Concatenate a list of strings.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.concatStrings` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>concatStrings <span class="p">[</span><span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;bar&quot;</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;foobar&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L50">lib/strings.nix:50</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.concatMapStrings"><code>lib.strings.concatMapStrings</code></h2>
<p><strong>Type</strong>: <code>concatMapStrings :: (a -&gt; string) -&gt; [a] -&gt; string</code></p>
<p>Map a function over a list and concatenate the resulting strings.</p>
<p><code>f</code></p>
<p>: Function argument</p>
<p><code>list</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsconcatmapstrings-usage-example"><code>lib.strings.concatMapStrings</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>concatMapStrings <span class="p">(</span>x<span class="p">:</span> <span class="s2">&quot;a&quot;</span> <span class="o">+</span> x<span class="p">)</span> <span class="p">[</span><span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;bar&quot;</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;afooabar&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L60">lib/strings.nix:60</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.concatImapStrings"><code>lib.strings.concatImapStrings</code></h2>
<p><strong>Type</strong>: <code>concatImapStrings :: (int -&gt; a -&gt; string) -&gt; [a] -&gt; string</code></p>
<p>Like <code>concatMapStrings</code> except that the f functions also gets the
position as a parameter.</p>
<p><code>f</code></p>
<p>: Function argument</p>
<p><code>list</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsconcatimapstrings-usage-example"><code>lib.strings.concatImapStrings</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>concatImapStrings <span class="p">(</span>pos<span class="p">:</span> x<span class="p">:</span> <span class="s2">&quot;</span><span class="si">${</span><span class="nb">toString</span> pos<span class="si">}</span><span class="s2">-</span><span class="si">${</span>x<span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span> <span class="p">[</span><span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;bar&quot;</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;1-foo2-bar&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L71">lib/strings.nix:71</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.intersperse"><code>lib.strings.intersperse</code></h2>
<p><strong>Type</strong>: <code>intersperse :: a -&gt; [a] -&gt; [a]</code></p>
<p>Place an element between each element of a list</p>
<p><code>separator</code></p>
<p>: Separator to add between elements</p>
<p><code>list</code></p>
<p>: Input list</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsintersperse-usage-example"><code>lib.strings.intersperse</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>intersperse <span class="s2">&quot;/&quot;</span> <span class="p">[</span><span class="s2">&quot;usr&quot;</span> <span class="s2">&quot;local&quot;</span> <span class="s2">&quot;bin&quot;</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="p">[</span><span class="s2">&quot;usr&quot;</span> <span class="s2">&quot;/&quot;</span> <span class="s2">&quot;local&quot;</span> <span class="s2">&quot;/&quot;</span> <span class="s2">&quot;bin&quot;</span><span class="p">]</span><span class="o">.</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L81">lib/strings.nix:81</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.concatStringsSep"><code>lib.strings.concatStringsSep</code></h2>
<p><strong>Type</strong>: <code>concatStringsSep :: string -&gt; [string] -&gt; string</code></p>
<p>Concatenate a list of strings with a separator between each element</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.concatStringsSep` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>concatStringsSep <span class="s2">&quot;/&quot;</span> <span class="p">[</span><span class="s2">&quot;usr&quot;</span> <span class="s2">&quot;local&quot;</span> <span class="s2">&quot;bin&quot;</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;usr/local/bin&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L98">lib/strings.nix:98</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.concatMapStringsSep"><code>lib.strings.concatMapStringsSep</code></h2>
<p><strong>Type</strong>: <code>concatMapStringsSep :: string -&gt; (a -&gt; string) -&gt; [a] -&gt; string</code></p>
<p>Maps a function over a list of strings and then concatenates the
result with the specified separator interspersed between
elements.</p>
<p><code>sep</code></p>
<p>: Separator to add between elements</p>
<p><code>f</code></p>
<p>: Function to map over the list</p>
<p><code>list</code></p>
<p>: List of input strings</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsconcatmapstringssep-usage-example"><code>lib.strings.concatMapStringsSep</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>concatMapStringsSep <span class="s2">&quot;-&quot;</span> <span class="p">(</span>x<span class="p">:</span> toUpper x<span class="p">)</span> <span class="p">[</span><span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;bar&quot;</span> <span class="s2">&quot;baz&quot;</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;FOO-BAR-BAZ&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L110">lib/strings.nix:110</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.concatImapStringsSep"><code>lib.strings.concatImapStringsSep</code></h2>
<p><strong>Type</strong>: <code>concatIMapStringsSep :: string -&gt; (int -&gt; a -&gt; string) -&gt; [a] -&gt; string</code></p>
<p>Same as <code>concatMapStringsSep</code>, but the mapping function
additionally receives the position of its argument.</p>
<p><code>sep</code></p>
<p>: Separator to add between elements</p>
<p><code>f</code></p>
<p>: Function that receives elements and their positions</p>
<p><code>list</code></p>
<p>: List of input strings</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsconcatimapstringssep-usage-example"><code>lib.strings.concatImapStringsSep</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>concatImapStringsSep <span class="s2">&quot;-&quot;</span> <span class="p">(</span>pos<span class="p">:</span> x<span class="p">:</span> <span class="nb">toString</span> <span class="p">(</span>x <span class="o">/</span> pos<span class="p">))</span> <span class="p">[</span> <span class="mi">6</span> <span class="mi">6</span> <span class="mi">6</span> <span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;6-3-2&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L127">lib/strings.nix:127</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.concatLines"><code>lib.strings.concatLines</code></h2>
<p><strong>Type</strong>: <code>concatLines :: [string] -&gt; string</code></p>
<p>Concatenate a list of strings, adding a newline at the end of each one.
Defined as <code>concatMapStrings (s: s + "\n")</code>.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.concatLines` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>concatLines <span class="p">[</span> <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;bar&quot;</span> <span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;foo</span><span class="se">\n</span><span class="s2">bar</span><span class="se">\n</span><span class="s2">&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L144">lib/strings.nix:144</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.replicate"><code>lib.strings.replicate</code></h2>
<p><strong>Type</strong>: <code>replicate :: int -&gt; string -&gt; string</code></p>
<p>Replicate a string n times,
and concatenate the parts into a new string.</p>
<p><code>n</code></p>
<p>: Function argument</p>
<p><code>s</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsreplicate-usage-example"><code>lib.strings.replicate</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>replicate <span class="mi">3</span> <span class="s2">&quot;v&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;vvv&quot;</span>
replicate <span class="mi">5</span> <span class="s2">&quot;hello&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;hellohellohellohellohello&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L158">lib/strings.nix:158</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.makeSearchPath"><code>lib.strings.makeSearchPath</code></h2>
<p><strong>Type</strong>: <code>makeSearchPath :: string -&gt; [string] -&gt; string</code></p>
<p>Construct a Unix-style, colon-separated search path consisting of
the given <code>subDir</code> appended to each of the given paths.</p>
<p><code>subDir</code></p>
<p>: Directory name to append</p>
<p><code>paths</code></p>
<p>: List of base paths</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsmakesearchpath-usage-example"><code>lib.strings.makeSearchPath</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>makeSearchPath <span class="s2">&quot;bin&quot;</span> <span class="p">[</span><span class="s2">&quot;/root&quot;</span> <span class="s2">&quot;/usr&quot;</span> <span class="s2">&quot;/usr/local&quot;</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;/root/bin:/usr/bin:/usr/local/bin&quot;</span>
makeSearchPath <span class="s2">&quot;bin&quot;</span> <span class="p">[</span><span class="s2">&quot;&quot;</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;/bin&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L171">lib/strings.nix:171</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.makeSearchPathOutput"><code>lib.strings.makeSearchPathOutput</code></h2>
<p><strong>Type</strong>: <code>string -&gt; string -&gt; [package] -&gt; string</code></p>
<p>Construct a Unix-style search path by appending the given
<code>subDir</code> to the specified <code>output</code> of each of the packages. If no
output by the given name is found, fallback to <code>.out</code> and then to
the default.</p>
<p><code>output</code></p>
<p>: Package output to use</p>
<p><code>subDir</code></p>
<p>: Directory name to append</p>
<p><code>pkgs</code></p>
<p>: List of packages</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsmakesearchpathoutput-usage-example"><code>lib.strings.makeSearchPathOutput</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>makeSearchPathOutput <span class="s2">&quot;dev&quot;</span> <span class="s2">&quot;bin&quot;</span> <span class="p">[</span> pkgs<span class="o">.</span>openssl pkgs<span class="o">.</span>zlib <span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev/bin:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/bin&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L189">lib/strings.nix:189</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.makeLibraryPath"><code>lib.strings.makeLibraryPath</code></h2>
<p>Construct a library search path (such as RPATH) containing the
libraries for a set of packages</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.makeLibraryPath` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>makeLibraryPath <span class="p">[</span> <span class="s2">&quot;/usr&quot;</span> <span class="s2">&quot;/usr/local&quot;</span> <span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;/usr/lib:/usr/local/lib&quot;</span>
<span class="ss">pkgs</span> <span class="o">=</span> <span class="nb">import</span> <span class="l">&lt;nixpkgs&gt;</span> <span class="p">{</span> <span class="p">}</span>
makeLibraryPath <span class="p">[</span> pkgs<span class="o">.</span>openssl pkgs<span class="o">.</span>zlib <span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r/lib:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/lib&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L207">lib/strings.nix:207</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.makeIncludePath"><code>lib.strings.makeIncludePath</code></h2>
<p>Construct an include search path (such as C_INCLUDE_PATH) containing the
header files for a set of packages or paths.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.makeIncludePath` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>makeIncludePath <span class="p">[</span> <span class="s2">&quot;/usr&quot;</span> <span class="s2">&quot;/usr/local&quot;</span> <span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;/usr/include:/usr/local/include&quot;</span>
<span class="ss">pkgs</span> <span class="o">=</span> <span class="nb">import</span> <span class="l">&lt;nixpkgs&gt;</span> <span class="p">{</span> <span class="p">}</span>
makeIncludePath <span class="p">[</span> pkgs<span class="o">.</span>openssl pkgs<span class="o">.</span>zlib <span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev/include:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8-dev/include&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L219">lib/strings.nix:219</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.makeBinPath"><code>lib.strings.makeBinPath</code></h2>
<p>Construct a binary search path (such as $PATH) containing the
binaries for a set of packages.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.makeBinPath` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>makeBinPath <span class="p">[</span><span class="s2">&quot;/root&quot;</span> <span class="s2">&quot;/usr&quot;</span> <span class="s2">&quot;/usr/local&quot;</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;/root/bin:/usr/bin:/usr/local/bin&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L228">lib/strings.nix:228</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.normalizePath"><code>lib.strings.normalizePath</code></h2>
<p><strong>Type</strong>: <code>normalizePath :: string -&gt; string</code></p>
<p>Normalize path, removing extraneous /s</p>
<p><code>s</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsnormalizepath-usage-example"><code>lib.strings.normalizePath</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>normalizePath <span class="s2">&quot;/a//b///c/&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;/a/b/c/&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L238">lib/strings.nix:238</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.optionalString"><code>lib.strings.optionalString</code></h2>
<p><strong>Type</strong>: <code>optionalString :: bool -&gt; string -&gt; string</code></p>
<p>Depending on the boolean `cond', return either the given string
or the empty string. Useful to concatenate against a bigger string.</p>
<p><code>cond</code></p>
<p>: Condition</p>
<p><code>string</code></p>
<p>: String to return if condition is true</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsoptionalstring-usage-example"><code>lib.strings.optionalString</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>optionalString <span class="no">true</span> <span class="s2">&quot;some-string&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;some-string&quot;</span>
optionalString <span class="no">false</span> <span class="s2">&quot;some-string&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L264">lib/strings.nix:264</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.hasPrefix"><code>lib.strings.hasPrefix</code></h2>
<p><strong>Type</strong>: <code>hasPrefix :: string -&gt; string -&gt; bool</code></p>
<p>Determine whether a string has given prefix.</p>
<p><code>pref</code></p>
<p>: Prefix to check for</p>
<p><code>str</code></p>
<p>: Input string</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringshasprefix-usage-example"><code>lib.strings.hasPrefix</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>hasPrefix <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;foobar&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
hasPrefix <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;barfoo&quot;</span>
<span class="o">=&gt;</span> <span class="no">false</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L280">lib/strings.nix:280</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.hasSuffix"><code>lib.strings.hasSuffix</code></h2>
<p><strong>Type</strong>: <code>hasSuffix :: string -&gt; string -&gt; bool</code></p>
<p>Determine whether a string has given suffix.</p>
<p><code>suffix</code></p>
<p>: Suffix to check for</p>
<p><code>content</code></p>
<p>: Input string</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringshassuffix-usage-example"><code>lib.strings.hasSuffix</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>hasSuffix <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;foobar&quot;</span>
<span class="o">=&gt;</span> <span class="no">false</span>
hasSuffix <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;barfoo&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L307">lib/strings.nix:307</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.hasInfix"><code>lib.strings.hasInfix</code></h2>
<p><strong>Type</strong>: <code>hasInfix :: string -&gt; string -&gt; bool</code></p>
<p>Determine whether a string contains the given infix</p>
<p><code>infix</code></p>
<p>: Function argument</p>
<p><code>content</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringshasinfix-usage-example"><code>lib.strings.hasInfix</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>hasInfix <span class="s2">&quot;bc&quot;</span> <span class="s2">&quot;abcd&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
hasInfix <span class="s2">&quot;ab&quot;</span> <span class="s2">&quot;abcd&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
hasInfix <span class="s2">&quot;cd&quot;</span> <span class="s2">&quot;abcd&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
hasInfix <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;abcd&quot;</span>
<span class="o">=&gt;</span> <span class="no">false</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L344">lib/strings.nix:344</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.stringToCharacters"><code>lib.strings.stringToCharacters</code></h2>
<p><strong>Type</strong>: <code>stringToCharacters :: string -&gt; [string]</code></p>
<p>Convert a string to a list of characters (i.e. singleton strings).
This allows you to, e.g., map a function over each character. However,
note that this will likely be horribly inefficient; Nix is not a
general purpose programming language. Complex string manipulations
should, if appropriate, be done in a derivation.
Also note that Nix treats strings as a list of bytes and thus doesn't
handle unicode.</p>
<p><code>s</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsstringtocharacters-usage-example"><code>lib.strings.stringToCharacters</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>stringToCharacters <span class="s2">&quot;&quot;</span>
<span class="o">=&gt;</span> <span class="p">[</span> <span class="p">]</span>
stringToCharacters <span class="s2">&quot;abc&quot;</span>
<span class="o">=&gt;</span> <span class="p">[</span> <span class="s2">&quot;a&quot;</span> <span class="s2">&quot;b&quot;</span> <span class="s2">&quot;c&quot;</span> <span class="p">]</span>
stringToCharacters <span class="s2">&quot;🦄&quot;</span>
<span class="o">=&gt;</span> <span class="p">[</span> <span class="s2">&quot;<EFBFBD>&quot;</span> <span class="s2">&quot;<EFBFBD>&quot;</span> <span class="s2">&quot;<EFBFBD>&quot;</span> <span class="s2">&quot;<EFBFBD>&quot;</span> <span class="p">]</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L374">lib/strings.nix:374</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.stringAsChars"><code>lib.strings.stringAsChars</code></h2>
<p><strong>Type</strong>: <code>stringAsChars :: (string -&gt; string) -&gt; string -&gt; string</code></p>
<p>Manipulate a string character by character and replace them by
strings before concatenating the results.</p>
<p><code>f</code></p>
<p>: Function to map over each individual character</p>
<p><code>s</code></p>
<p>: Input string</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsstringaschars-usage-example"><code>lib.strings.stringAsChars</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>stringAsChars <span class="p">(</span>x<span class="p">:</span> <span class="k">if</span> <span class="ss">x</span> <span class="o">==</span> <span class="s2">&quot;a&quot;</span> <span class="k">then</span> <span class="s2">&quot;i&quot;</span> <span class="k">else</span> x<span class="p">)</span> <span class="s2">&quot;nax&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;nix&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L386">lib/strings.nix:386</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.charToInt"><code>lib.strings.charToInt</code></h2>
<p><strong>Type</strong>: <code>charToInt :: string -&gt; int</code></p>
<p>Convert char to ascii value, must be in printable range</p>
<p><code>c</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringschartoint-usage-example"><code>lib.strings.charToInt</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>charToInt <span class="s2">&quot;A&quot;</span>
<span class="o">=&gt;</span> <span class="mi">65</span>
charToInt <span class="s2">&quot;(&quot;</span>
<span class="o">=&gt;</span> <span class="mi">40</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L405">lib/strings.nix:405</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.escape"><code>lib.strings.escape</code></h2>
<p><strong>Type</strong>: <code>escape :: [string] -&gt; string -&gt; string</code></p>
<p>Escape occurrence of the elements of <code>list</code> in <code>string</code> by
prefixing it with a backslash.</p>
<p><code>list</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsescape-usage-example"><code>lib.strings.escape</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>escape <span class="p">[</span><span class="s2">&quot;(&quot;</span> <span class="s2">&quot;)&quot;</span><span class="p">]</span> <span class="s2">&quot;(foo)&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;</span><span class="se">\\</span><span class="s2">(foo</span><span class="se">\\</span><span class="s2">)&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L416">lib/strings.nix:416</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.escapeC"><code>lib.strings.escapeC</code></h2>
<p><strong>Type</strong>: <code>escapeC = [string] -&gt; string -&gt; string</code></p>
<p>Escape occurrence of the element of <code>list</code> in <code>string</code> by
converting to its ASCII value and prefixing it with \x.
Only works for printable ascii characters.</p>
<p><code>list</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsescapec-usage-example"><code>lib.strings.escapeC</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>escapeC <span class="p">[</span><span class="s2">&quot; &quot;</span><span class="p">]</span> <span class="s2">&quot;foo bar&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;foo</span><span class="se">\\</span><span class="s2">x20bar&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L429">lib/strings.nix:429</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.escapeURL"><code>lib.strings.escapeURL</code></h2>
<p><strong>Type</strong>: <code>escapeURL :: string -&gt; string</code></p>
<p>Escape the string so it can be safely placed inside a URL
query.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.escapeURL` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>escapeURL <span class="s2">&quot;foo/bar baz&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;foo%2Fbar%20baz&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L440">lib/strings.nix:440</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.escapeShellArg"><code>lib.strings.escapeShellArg</code></h2>
<p><strong>Type</strong>: <code>escapeShellArg :: string -&gt; string</code></p>
<p>Quote string to be used safely within the Bourne shell.</p>
<p><code>arg</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsescapeshellarg-usage-example"><code>lib.strings.escapeShellArg</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>escapeShellArg <span class="s2">&quot;esc&#39;ape</span><span class="se">\n</span><span class="s2">me&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;&#39;esc&#39;</span><span class="se">\\</span><span class="s2">&#39;&#39;ape</span><span class="se">\n</span><span class="s2">me&#39;&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L454">lib/strings.nix:454</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.escapeShellArgs"><code>lib.strings.escapeShellArgs</code></h2>
<p><strong>Type</strong>: <code>escapeShellArgs :: [string] -&gt; string</code></p>
<p>Quote all arguments to be safely passed to the Bourne shell.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.escapeShellArgs` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>escapeShellArgs <span class="p">[</span><span class="s2">&quot;one&quot;</span> <span class="s2">&quot;two three&quot;</span> <span class="s2">&quot;four&#39;five&quot;</span><span class="p">]</span>
<span class="o">=&gt;</span> <span class="s2">&quot;&#39;one&#39; &#39;two three&#39; &#39;four&#39;</span><span class="se">\\</span><span class="s2">&#39;&#39;five&#39;&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L464">lib/strings.nix:464</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.isValidPosixName"><code>lib.strings.isValidPosixName</code></h2>
<p><strong>Type</strong>: <code>string -&gt; bool</code></p>
<p>Test whether the given name is a valid POSIX shell variable name.</p>
<p><code>name</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsisvalidposixname-usage-example"><code>lib.strings.isValidPosixName</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>isValidPosixName <span class="s2">&quot;foo_bar000&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
isValidPosixName <span class="s2">&quot;0-bad.jpg&quot;</span>
<span class="o">=&gt;</span> <span class="no">false</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L476">lib/strings.nix:476</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.toShellVar"><code>lib.strings.toShellVar</code></h2>
<p><strong>Type</strong>: <code>string -&gt; (string | listOf string | attrsOf string) -&gt; string</code></p>
<p>Translate a Nix value into a shell variable declaration, with proper escaping.</p>
<p>The value can be a string (mapped to a regular variable), a list of strings
(mapped to a Bash-style array) or an attribute set of strings (mapped to a
Bash-style associative array). Note that "string" includes string-coercible
values like paths or derivations.</p>
<p>Strings are translated into POSIX sh-compatible code; lists and attribute sets
assume a shell that understands Bash syntax (e.g. Bash or ZSH).</p>
<p><code>name</code></p>
<p>: Function argument</p>
<p><code>value</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringstoshellvar-usage-example"><code>lib.strings.toShellVar</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code><span class="s s-Multiline">&#39;&#39;</span>
<span class="s s-Multiline"> </span><span class="si">${</span>toShellVar <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;some string&quot;</span><span class="si">}</span>
<span class="s s-Multiline"> [[ &quot;$foo&quot; == &quot;some string&quot; ]]</span>
<span class="s s-Multiline">&#39;&#39;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L496">lib/strings.nix:496</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.toShellVars"><code>lib.strings.toShellVars</code></h2>
<p><strong>Type</strong>: <code>attrsOf (string | listOf string | attrsOf string) -&gt; string</code></p>
<p>Translate an attribute set into corresponding shell variable declarations
using <code>toShellVar</code>.</p>
<p><code>vars</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringstoshellvars-usage-example"><code>lib.strings.toShellVars</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code><span class="k">let</span>
<span class="ss">foo</span> <span class="o">=</span> <span class="s2">&quot;value&quot;</span><span class="p">;</span>
<span class="ss">bar</span> <span class="o">=</span> foo<span class="p">;</span>
<span class="k">in</span> <span class="s s-Multiline">&#39;&#39;</span>
<span class="s s-Multiline"> </span><span class="si">${</span>toShellVars <span class="p">{</span> <span class="k">inherit</span> foo bar<span class="p">;</span> <span class="p">}</span><span class="si">}</span>
<span class="s s-Multiline"> [[ &quot;$foo&quot; == &quot;$bar&quot; ]]</span>
<span class="s s-Multiline">&#39;&#39;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L524">lib/strings.nix:524</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.escapeNixString"><code>lib.strings.escapeNixString</code></h2>
<p><strong>Type</strong>: <code>string -&gt; string</code></p>
<p>Turn a string into a Nix expression representing that string</p>
<p><code>s</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsescapenixstring-usage-example"><code>lib.strings.escapeNixString</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>escapeNixString <span class="s2">&quot;hello</span><span class="se">\$</span><span class="s2">{}</span><span class="se">\n</span><span class="s2">&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;</span><span class="se">\&quot;</span><span class="s2">hello</span><span class="se">\\\$</span><span class="s2">{}</span><span class="se">\\</span><span class="s2">n</span><span class="se">\&quot;</span><span class="s2">&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L534">lib/strings.nix:534</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.escapeRegex"><code>lib.strings.escapeRegex</code></h2>
<p><strong>Type</strong>: <code>string -&gt; string</code></p>
<p>Turn a string into an exact regular expression</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.escapeRegex` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>escapeRegex <span class="s2">&quot;[^a-z]*&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;</span><span class="se">\\</span><span class="s2">[</span><span class="se">\\</span><span class="s2">^a-z]</span><span class="se">\\</span><span class="s2">*&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L544">lib/strings.nix:544</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.escapeNixIdentifier"><code>lib.strings.escapeNixIdentifier</code></h2>
<p><strong>Type</strong>: <code>string -&gt; string</code></p>
<p>Quotes a string if it can't be used as an identifier directly.</p>
<p><code>s</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsescapenixidentifier-usage-example"><code>lib.strings.escapeNixIdentifier</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>escapeNixIdentifier <span class="s2">&quot;hello&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;hello&quot;</span>
escapeNixIdentifier <span class="s2">&quot;0abc&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;</span><span class="se">\&quot;</span><span class="s2">0abc</span><span class="se">\&quot;</span><span class="s2">&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L556">lib/strings.nix:556</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.escapeXML"><code>lib.strings.escapeXML</code></h2>
<p><strong>Type</strong>: <code>string -&gt; string</code></p>
<p>Escapes a string such that it is safe to include verbatim in an XML
document.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.escapeXML` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>escapeXML <span class="s s-Multiline">&#39;&#39;&quot;test&quot; &#39;test&#39; &lt; &amp; &gt;&#39;&#39;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;&amp;quot;test&amp;quot; &amp;apos;test&amp;apos; &amp;lt; &amp;amp; &amp;gt;&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L570">lib/strings.nix:570</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.toLower"><code>lib.strings.toLower</code></h2>
<p><strong>Type</strong>: <code>toLower :: string -&gt; string</code></p>
<p>Converts an ASCII string to lower-case.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.toLower` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>toLower <span class="s2">&quot;HOME&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;home&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L589">lib/strings.nix:589</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.toUpper"><code>lib.strings.toUpper</code></h2>
<p><strong>Type</strong>: <code>toUpper :: string -&gt; string</code></p>
<p>Converts an ASCII string to upper-case.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.toUpper` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>toUpper <span class="s2">&quot;home&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;HOME&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L599">lib/strings.nix:599</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.addContextFrom"><code>lib.strings.addContextFrom</code></h2>
<p>Appends string context from another string. This is an implementation
detail of Nix and should be used carefully.</p>
<p>Strings in Nix carry an invisible <code>context</code> which is a list of strings
representing store paths. If the string is later used in a derivation
attribute, the derivation will properly populate the inputDrvs and
inputSrcs.</p>
<p><code>a</code></p>
<p>: Function argument</p>
<p><code>b</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsaddcontextfrom-usage-example"><code>lib.strings.addContextFrom</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code><span class="ss">pkgs</span> <span class="o">=</span> <span class="nb">import</span> <span class="l">&lt;nixpkgs&gt;</span> <span class="p">{</span> <span class="p">};</span>
addContextFrom pkgs<span class="o">.</span>coreutils <span class="s2">&quot;bar&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;bar&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L614">lib/strings.nix:614</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.splitString"><code>lib.strings.splitString</code></h2>
<p>Cut a string with a separator and produces a list of strings which
were separated by this separator.</p>
<p><code>sep</code></p>
<p>: Function argument</p>
<p><code>s</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringssplitstring-usage-example"><code>lib.strings.splitString</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>splitString <span class="s2">&quot;.&quot;</span> <span class="s2">&quot;foo.bar.baz&quot;</span>
<span class="o">=&gt;</span> <span class="p">[</span> <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;bar&quot;</span> <span class="s2">&quot;baz&quot;</span> <span class="p">]</span>
splitString <span class="s2">&quot;/&quot;</span> <span class="s2">&quot;/usr/local/bin&quot;</span>
<span class="o">=&gt;</span> <span class="p">[</span> <span class="s2">&quot;&quot;</span> <span class="s2">&quot;usr&quot;</span> <span class="s2">&quot;local&quot;</span> <span class="s2">&quot;bin&quot;</span> <span class="p">]</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L625">lib/strings.nix:625</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.removePrefix"><code>lib.strings.removePrefix</code></h2>
<p><strong>Type</strong>: <code>string -&gt; string -&gt; string</code></p>
<p>Return a string without the specified prefix, if the prefix matches.</p>
<p><code>prefix</code></p>
<p>: Prefix to remove if it matches</p>
<p><code>str</code></p>
<p>: Input string</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsremoveprefix-usage-example"><code>lib.strings.removePrefix</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>removePrefix <span class="s2">&quot;foo.&quot;</span> <span class="s2">&quot;foo.bar.baz&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;bar.baz&quot;</span>
removePrefix <span class="s2">&quot;xxx&quot;</span> <span class="s2">&quot;foo.bar.baz&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;foo.bar.baz&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L641">lib/strings.nix:641</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.removeSuffix"><code>lib.strings.removeSuffix</code></h2>
<p><strong>Type</strong>: <code>string -&gt; string -&gt; string</code></p>
<p>Return a string without the specified suffix, if the suffix matches.</p>
<p><code>suffix</code></p>
<p>: Suffix to remove if it matches</p>
<p><code>str</code></p>
<p>: Input string</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsremovesuffix-usage-example"><code>lib.strings.removeSuffix</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>removeSuffix <span class="s2">&quot;front&quot;</span> <span class="s2">&quot;homefront&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;home&quot;</span>
removeSuffix <span class="s2">&quot;xxx&quot;</span> <span class="s2">&quot;homefront&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;homefront&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L674">lib/strings.nix:674</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.versionOlder"><code>lib.strings.versionOlder</code></h2>
<p>Return true if string v1 denotes a version older than v2.</p>
<p><code>v1</code></p>
<p>: Function argument</p>
<p><code>v2</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsversionolder-usage-example"><code>lib.strings.versionOlder</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>versionOlder <span class="s2">&quot;1.1&quot;</span> <span class="s2">&quot;1.2&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
versionOlder <span class="s2">&quot;1.1&quot;</span> <span class="s2">&quot;1.1&quot;</span>
<span class="o">=&gt;</span> <span class="no">false</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L705">lib/strings.nix:705</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.versionAtLeast"><code>lib.strings.versionAtLeast</code></h2>
<p>Return true if string v1 denotes a version equal to or newer than v2.</p>
<p><code>v1</code></p>
<p>: Function argument</p>
<p><code>v2</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsversionatleast-usage-example"><code>lib.strings.versionAtLeast</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>versionAtLeast <span class="s2">&quot;1.1&quot;</span> <span class="s2">&quot;1.0&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
versionAtLeast <span class="s2">&quot;1.1&quot;</span> <span class="s2">&quot;1.1&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
versionAtLeast <span class="s2">&quot;1.1&quot;</span> <span class="s2">&quot;1.2&quot;</span>
<span class="o">=&gt;</span> <span class="no">false</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L717">lib/strings.nix:717</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.getName"><code>lib.strings.getName</code></h2>
<p>This function takes an argument that's either a derivation or a
derivation's "name" attribute and extracts the name part from that
argument.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.getName` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>getName <span class="s2">&quot;youtube-dl-2016.01.01&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;youtube-dl&quot;</span>
getName pkgs<span class="o">.</span><span class="ss">youtube-dl</span>
<span class="o">=&gt;</span> <span class="s2">&quot;youtube-dl&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L729">lib/strings.nix:729</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.getVersion"><code>lib.strings.getVersion</code></h2>
<p>This function takes an argument that's either a derivation or a
derivation's "name" attribute and extracts the version part from that
argument.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.getVersion` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>getVersion <span class="s2">&quot;youtube-dl-2016.01.01&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;2016.01.01&quot;</span>
getVersion pkgs<span class="o">.</span><span class="ss">youtube-dl</span>
<span class="o">=&gt;</span> <span class="s2">&quot;2016.01.01&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L746">lib/strings.nix:746</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.nameFromURL"><code>lib.strings.nameFromURL</code></h2>
<p>Extract name with version from URL. Ask for separator which is
supposed to start extension.</p>
<p><code>url</code></p>
<p>: Function argument</p>
<p><code>sep</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsnamefromurl-usage-example"><code>lib.strings.nameFromURL</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>nameFromURL <span class="s2">&quot;https://nixos.org/releases/nix/nix-1.7/nix-1.7-x86_64-linux.tar.bz2&quot;</span> <span class="s2">&quot;-&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;nix&quot;</span>
nameFromURL <span class="s2">&quot;https://nixos.org/releases/nix/nix-1.7/nix-1.7-x86_64-linux.tar.bz2&quot;</span> <span class="s2">&quot;_&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;nix-1.7-x86&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L762">lib/strings.nix:762</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.cmakeOptionType"><code>lib.strings.cmakeOptionType</code></h2>
<p><strong>Type</strong>:
<div class="highlight"><pre><span></span><code>cmakeOptionType :: string -&gt; string -&gt; string -&gt; string
@param feature The feature to be set
@param type The type of the feature to be set, as described in
https://cmake.org/cmake/help/latest/command/set.html
the possible values (case insensitive) are:
BOOL FILEPATH PATH STRING INTERNAL
@param value The desired value
</code></pre></div></p>
<p>Create a "-D<feature>:<type>=<value>" string that can be passed to typical
CMake invocations.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.cmakeOptionType` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>cmakeOptionType <span class="s2">&quot;string&quot;</span> <span class="s2">&quot;ENGINE&quot;</span> <span class="s2">&quot;sdl2&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;-DENGINE:STRING=sdl2&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L785">lib/strings.nix:785</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.cmakeBool"><code>lib.strings.cmakeBool</code></h2>
<p><strong>Type</strong>:
<div class="highlight"><pre><span></span><code>cmakeBool :: string -&gt; bool -&gt; string
@param condition The condition to be made true or false
@param flag The controlling flag of the condition
</code></pre></div></p>
<p>Create a -D<condition>={TRUE,FALSE} string that can be passed to typical
CMake invocations.</p>
<p><code>condition</code></p>
<p>: Function argument</p>
<p><code>flag</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringscmakebool-usage-example"><code>lib.strings.cmakeBool</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>cmakeBool <span class="s2">&quot;ENABLE_STATIC_LIBS&quot;</span> <span class="no">false</span>
<span class="o">=&gt;</span> <span class="s2">&quot;-DENABLESTATIC_LIBS:BOOL=FALSE&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L805">lib/strings.nix:805</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.cmakeFeature"><code>lib.strings.cmakeFeature</code></h2>
<p><strong>Type</strong>:
<div class="highlight"><pre><span></span><code>cmakeFeature :: string -&gt; string -&gt; string
@param condition The condition to be made true or false
@param flag The controlling flag of the condition
</code></pre></div></p>
<p>Create a -D<feature>:STRING=<value> string that can be passed to typical
CMake invocations.
This is the most typical usage, so it deserves a special case.</p>
<p><code>feature</code></p>
<p>: Function argument</p>
<p><code>value</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringscmakefeature-usage-example"><code>lib.strings.cmakeFeature</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>cmakeFeature <span class="s2">&quot;MODULES&quot;</span> <span class="s2">&quot;badblock&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;-DMODULES:STRING=badblock&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L823">lib/strings.nix:823</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.mesonOption"><code>lib.strings.mesonOption</code></h2>
<p><strong>Type</strong>:
<div class="highlight"><pre><span></span><code>mesonOption :: string -&gt; string -&gt; string
@param feature The feature to be set
@param value The desired value
</code></pre></div></p>
<p>Create a -D<feature>=<value> string that can be passed to typical Meson
invocations.</p>
<p><code>feature</code></p>
<p>: Function argument</p>
<p><code>value</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsmesonoption-usage-example"><code>lib.strings.mesonOption</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>mesonOption <span class="s2">&quot;engine&quot;</span> <span class="s2">&quot;opengl&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;-Dengine=opengl&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L840">lib/strings.nix:840</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.mesonBool"><code>lib.strings.mesonBool</code></h2>
<p><strong>Type</strong>:
<div class="highlight"><pre><span></span><code>mesonBool :: string -&gt; bool -&gt; string
@param condition The condition to be made true or false
@param flag The controlling flag of the condition
</code></pre></div></p>
<p>Create a -D<condition>={true,false} string that can be passed to typical
Meson invocations.</p>
<p><code>condition</code></p>
<p>: Function argument</p>
<p><code>flag</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsmesonbool-usage-example"><code>lib.strings.mesonBool</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>mesonBool <span class="s2">&quot;hardened&quot;</span> <span class="no">true</span>
<span class="o">=&gt;</span> <span class="s2">&quot;-Dhardened=true&quot;</span>
mesonBool <span class="s2">&quot;static&quot;</span> <span class="no">false</span>
<span class="o">=&gt;</span> <span class="s2">&quot;-Dstatic=false&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L859">lib/strings.nix:859</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.mesonEnable"><code>lib.strings.mesonEnable</code></h2>
<p><strong>Type</strong>:
<div class="highlight"><pre><span></span><code>mesonEnable :: string -&gt; bool -&gt; string
@param feature The feature to be enabled or disabled
@param flag The controlling flag
</code></pre></div></p>
<p>Create a -D<feature>={enabled,disabled} string that can be passed to
typical Meson invocations.</p>
<p><code>feature</code></p>
<p>: Function argument</p>
<p><code>flag</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsmesonenable-usage-example"><code>lib.strings.mesonEnable</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>mesonEnable <span class="s2">&quot;docs&quot;</span> <span class="no">true</span>
<span class="o">=&gt;</span> <span class="s2">&quot;-Ddocs=enabled&quot;</span>
mesonEnable <span class="s2">&quot;savage&quot;</span> <span class="no">false</span>
<span class="o">=&gt;</span> <span class="s2">&quot;-Dsavage=disabled&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L878">lib/strings.nix:878</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.enableFeature"><code>lib.strings.enableFeature</code></h2>
<p>Create an --{enable,disable}-<feature> string that can be passed to
standard GNU Autoconf scripts.</p>
<p><code>flag</code></p>
<p>: Function argument</p>
<p><code>feature</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsenablefeature-usage-example"><code>lib.strings.enableFeature</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>enableFeature <span class="no">true</span> <span class="s2">&quot;shared&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;--enable-shared&quot;</span>
enableFeature <span class="no">false</span> <span class="s2">&quot;shared&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;--disable-shared&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L892">lib/strings.nix:892</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.enableFeatureAs"><code>lib.strings.enableFeatureAs</code></h2>
<p>Create an --{enable-<feature>=<value>,disable-<feature>} string that can be passed to
standard GNU Autoconf scripts.</p>
<p><code>flag</code></p>
<p>: Function argument</p>
<p><code>feature</code></p>
<p>: Function argument</p>
<p><code>value</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsenablefeatureas-usage-example"><code>lib.strings.enableFeatureAs</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>enableFeatureAs <span class="no">true</span> <span class="s2">&quot;shared&quot;</span> <span class="s2">&quot;foo&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;--enable-shared=foo&quot;</span>
enableFeatureAs <span class="no">false</span> <span class="s2">&quot;shared&quot;</span> <span class="p">(</span><span class="nb">throw</span> <span class="s2">&quot;ignored&quot;</span><span class="p">)</span>
<span class="o">=&gt;</span> <span class="s2">&quot;--disable-shared&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L906">lib/strings.nix:906</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.withFeature"><code>lib.strings.withFeature</code></h2>
<p>Create an --{with,without}-<feature> string that can be passed to
standard GNU Autoconf scripts.</p>
<p><code>flag</code></p>
<p>: Function argument</p>
<p><code>feature</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringswithfeature-usage-example"><code>lib.strings.withFeature</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>withFeature <span class="no">true</span> <span class="s2">&quot;shared&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;--with-shared&quot;</span>
withFeature <span class="no">false</span> <span class="s2">&quot;shared&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;--without-shared&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L918">lib/strings.nix:918</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.withFeatureAs"><code>lib.strings.withFeatureAs</code></h2>
<p>Create an --{with-<feature>=<value>,without-<feature>} string that can be passed to
standard GNU Autoconf scripts.</p>
<p><code>flag</code></p>
<p>: Function argument</p>
<p><code>feature</code></p>
<p>: Function argument</p>
<p><code>value</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringswithfeatureas-usage-example"><code>lib.strings.withFeatureAs</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>withFeatureAs <span class="no">true</span> <span class="s2">&quot;shared&quot;</span> <span class="s2">&quot;foo&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;--with-shared=foo&quot;</span>
withFeatureAs <span class="no">false</span> <span class="s2">&quot;shared&quot;</span> <span class="p">(</span><span class="nb">throw</span> <span class="s2">&quot;ignored&quot;</span><span class="p">)</span>
<span class="o">=&gt;</span> <span class="s2">&quot;--without-shared&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L931">lib/strings.nix:931</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.fixedWidthString"><code>lib.strings.fixedWidthString</code></h2>
<p><strong>Type</strong>: <code>fixedWidthString :: int -&gt; string -&gt; string -&gt; string</code></p>
<p>Create a fixed width string with additional prefix to match
required width.</p>
<p>This function will fail if the input string is longer than the
requested length.</p>
<p><code>width</code></p>
<p>: Function argument</p>
<p><code>filler</code></p>
<p>: Function argument</p>
<p><code>str</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsfixedwidthstring-usage-example"><code>lib.strings.fixedWidthString</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>fixedWidthString <span class="mi">5</span> <span class="s2">&quot;0&quot;</span> <span class="p">(</span><span class="nb">toString</span> <span class="mi">15</span><span class="p">)</span>
<span class="o">=&gt;</span> <span class="s2">&quot;00015&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L946">lib/strings.nix:946</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.fixedWidthNumber"><code>lib.strings.fixedWidthNumber</code></h2>
<p>Format a number adding leading zeroes up to fixed width.</p>
<p><code>width</code></p>
<p>: Function argument</p>
<p><code>n</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsfixedwidthnumber-usage-example"><code>lib.strings.fixedWidthNumber</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>fixedWidthNumber <span class="mi">5</span> <span class="mi">15</span>
<span class="o">=&gt;</span> <span class="s2">&quot;00015&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L963">lib/strings.nix:963</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.floatToString"><code>lib.strings.floatToString</code></h2>
<p>Convert a float to a string, but emit a warning when precision is lost
during the conversion</p>
<p><code>float</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsfloattostring-usage-example"><code>lib.strings.floatToString</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>floatToString <span class="mf">0.000001</span>
<span class="o">=&gt;</span> <span class="s2">&quot;0.000001&quot;</span>
floatToString <span class="mf">0.0000001</span>
<span class="o">=&gt;</span> trace<span class="p">:</span> warning<span class="p">:</span> Imprecise conversion from float to string <span class="mf">0.000000</span>
<span class="s2">&quot;0.000000&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L975">lib/strings.nix:975</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.isCoercibleToString"><code>lib.strings.isCoercibleToString</code></h2>
<p>Soft-deprecated function. While the original implementation is available as
isConvertibleWithToString, consider using isStringLike instead, if suitable.</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L983">lib/strings.nix:983</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.isConvertibleWithToString"><code>lib.strings.isConvertibleWithToString</code></h2>
<p>Check whether a list or other value can be passed to toString.</p>
<p>Many types of value are coercible to string this way, including int, float,
null, bool, list of similarly coercible values.</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L992">lib/strings.nix:992</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.isStringLike"><code>lib.strings.isStringLike</code></h2>
<p>Check whether a value can be coerced to a string.
The value must be a string, path, or attribute set.</p>
<p>String-like values can be used without explicit conversion in
string interpolations and in most functions that expect a string.</p>
<p><code>x</code></p>
<p>: Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1005">lib/strings.nix:1005</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.isStorePath"><code>lib.strings.isStorePath</code></h2>
<p>Check whether a value is a store path.</p>
<p><code>x</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsisstorepath-usage-example"><code>lib.strings.isStorePath</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>isStorePath <span class="s2">&quot;/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11/bin/python&quot;</span>
<span class="o">=&gt;</span> <span class="no">false</span>
isStorePath <span class="s2">&quot;/nix/store/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
isStorePath pkgs<span class="o">.</span><span class="ss">python</span>
<span class="o">=&gt;</span> <span class="no">true</span>
isStorePath <span class="p">[]</span> <span class="o">||</span> isStorePath <span class="mi">42</span> <span class="o">||</span> isStorePath <span class="p">{}</span> <span class="o">||</span> <span class="err"></span>
<span class="o">=&gt;</span> <span class="no">false</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1023">lib/strings.nix:1023</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.toInt"><code>lib.strings.toInt</code></h2>
<p><strong>Type</strong>: <code>string -&gt; int</code></p>
<p>Parse a string as an int. Does not support parsing of integers with preceding zero due to
ambiguity between zero-padded and octal numbers. See toIntBase10.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.toInt` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>toInt <span class="s2">&quot;1337&quot;</span>
<span class="o">=&gt;</span> <span class="mi">1337</span>
toInt <span class="s2">&quot;-4&quot;</span>
<span class="o">=&gt;</span> <span class="mi">-4</span>
toInt <span class="s2">&quot; 123 &quot;</span>
<span class="o">=&gt;</span> <span class="mi">123</span>
toInt <span class="s2">&quot;00024&quot;</span>
<span class="o">=&gt;</span> error<span class="p">:</span> Ambiguity <span class="k">in</span> interpretation of <span class="mi">00024</span> between octal <span class="ow">and</span> zero padded integer<span class="o">.</span>
toInt <span class="s2">&quot;3.14&quot;</span>
<span class="o">=&gt;</span> error<span class="p">:</span> floating point JSON numbers are not supported
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1053">lib/strings.nix:1053</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.toIntBase10"><code>lib.strings.toIntBase10</code></h2>
<p><strong>Type</strong>: <code>string -&gt; int</code></p>
<p>Parse a string as a base 10 int. This supports parsing of zero-padded integers.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.toIntBase10` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>toIntBase10 <span class="s2">&quot;1337&quot;</span>
<span class="o">=&gt;</span> <span class="mi">1337</span>
toIntBase10 <span class="s2">&quot;-4&quot;</span>
<span class="o">=&gt;</span> <span class="mi">-4</span>
toIntBase10 <span class="s2">&quot; 123 &quot;</span>
<span class="o">=&gt;</span> <span class="mi">123</span>
toIntBase10 <span class="s2">&quot;00024&quot;</span>
<span class="o">=&gt;</span> <span class="mi">24</span>
toIntBase10 <span class="s2">&quot;3.14&quot;</span>
<span class="o">=&gt;</span> error<span class="p">:</span> floating point JSON numbers are not supported
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1106">lib/strings.nix:1106</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.readPathsFromFile"><code>lib.strings.readPathsFromFile</code></h2>
<p>Read a list of paths from <code>file</code>, relative to the <code>rootPath</code>.
Lines beginning with <code>#</code> are treated as comments and ignored.
Whitespace is significant.</p>
<p>NOTE: This function is not performant and should be avoided.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.readPathsFromFile` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>readPathsFromFile <span class="l">/prefix</span>
<span class="l">./pkgs/development/libraries/qt-5/5.4/qtbase/series</span>
<span class="o">=&gt;</span> <span class="p">[</span> <span class="s2">&quot;/prefix/dlopen-resolv.patch&quot;</span> <span class="s2">&quot;/prefix/tzdir.patch&quot;</span>
<span class="s2">&quot;/prefix/dlopen-libXcursor.patch&quot;</span> <span class="s2">&quot;/prefix/dlopen-openssl.patch&quot;</span>
<span class="s2">&quot;/prefix/dlopen-dbus.patch&quot;</span> <span class="s2">&quot;/prefix/xdg-config-dirs.patch&quot;</span>
<span class="s2">&quot;/prefix/nix-profiles-library-paths.patch&quot;</span>
<span class="s2">&quot;/prefix/compose-search-path.patch&quot;</span> <span class="p">]</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1154">lib/strings.nix:1154</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.fileContents"><code>lib.strings.fileContents</code></h2>
<p><strong>Type</strong>: <code>fileContents :: path -&gt; string</code></p>
<p>Read the contents of a file removing the trailing \n</p>
<p><code>file</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringsfilecontents-usage-example"><code>lib.strings.fileContents</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code><span class="err">$</span> echo <span class="s2">&quot;1.0&quot;</span> <span class="o">&gt;</span> <span class="l">./version</span>
fileContents <span class="l">./version</span>
<span class="o">=&gt;</span> <span class="s2">&quot;1.0&quot;</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1174">lib/strings.nix:1174</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.sanitizeDerivationName"><code>lib.strings.sanitizeDerivationName</code></h2>
<p><strong>Type</strong>: <code>sanitizeDerivationName :: String -&gt; String</code></p>
<p>Creates a valid derivation name from a potentially invalid one.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.sanitizeDerivationName` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>sanitizeDerivationName <span class="s2">&quot;../hello.bar # foo&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;-hello.bar-foo&quot;</span>
sanitizeDerivationName <span class="s2">&quot;&quot;</span>
<span class="o">=&gt;</span> <span class="s2">&quot;unknown&quot;</span>
sanitizeDerivationName pkgs<span class="o">.</span><span class="ss">hello</span>
<span class="o">=&gt;</span> <span class="s2">&quot;-nix-store-2g75chlbpxlrqn15zlby2dfh8hr9qwbk-hello-2.10&quot;</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1189">lib/strings.nix:1189</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.levenshtein"><code>lib.strings.levenshtein</code></h2>
<p><strong>Type</strong>: <code>levenshtein :: string -&gt; string -&gt; int</code></p>
<p>Computes the Levenshtein distance between two strings.
Complexity O(n*m) where n and m are the lengths of the strings.
Algorithm adjusted from https://stackoverflow.com/a/9750974/6605742</p>
<p><code>a</code></p>
<p>: Function argument</p>
<p><code>b</code></p>
<p>: Function argument</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<h1 id="libstringslevenshtein-usage-example"><code>lib.strings.levenshtein</code> usage example</h1>
</div>
<div class="highlight"><pre><span></span><code>levenshtein <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;foo&quot;</span>
<span class="o">=&gt;</span> <span class="mi">0</span>
levenshtein <span class="s2">&quot;book&quot;</span> <span class="s2">&quot;hook&quot;</span>
<span class="o">=&gt;</span> <span class="mi">1</span>
levenshtein <span class="s2">&quot;hello&quot;</span> <span class="s2">&quot;Heyo&quot;</span>
<span class="o">=&gt;</span> <span class="mi">3</span>
</code></pre></div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1228">lib/strings.nix:1228</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.commonPrefixLength"><code>lib.strings.commonPrefixLength</code></h2>
<p>Returns the length of the prefix common to both strings.</p>
<p><code>a</code></p>
<p>: Function argument</p>
<p><code>b</code></p>
<p>: Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1249">lib/strings.nix:1249</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.commonSuffixLength"><code>lib.strings.commonSuffixLength</code></h2>
<p>Returns the length of the suffix common to both strings.</p>
<p><code>a</code></p>
<p>: Function argument</p>
<p><code>b</code></p>
<p>: Function argument</p>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1257">lib/strings.nix:1257</a> in <code>&lt;nixpkgs&gt;</code>.</p>
<h2 id="function-library-lib.strings.levenshteinAtMost"><code>lib.strings.levenshteinAtMost</code></h2>
<p><strong>Type</strong>: <code>levenshteinAtMost :: int -&gt; string -&gt; string -&gt; bool</code></p>
<p>Returns whether the levenshtein distance between two strings is at most some value
Complexity is O(min(n,m)) for k &lt;= 2 and O(n*m) otherwise</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code># `lib.strings.levenshteinAtMost` usage example
</code></pre></div>
<div class="highlight"><pre><span></span><code>levenshteinAtMost <span class="mi">0</span> <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;foo&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
levenshteinAtMost <span class="mi">1</span> <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;boa&quot;</span>
<span class="o">=&gt;</span> <span class="no">false</span>
levenshteinAtMost <span class="mi">2</span> <span class="s2">&quot;foo&quot;</span> <span class="s2">&quot;boa&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
levenshteinAtMost <span class="mi">2</span> <span class="s2">&quot;This is a sentence&quot;</span> <span class="s2">&quot;this is a sentense.&quot;</span>
<span class="o">=&gt;</span> <span class="no">false</span>
levenshteinAtMost <span class="mi">3</span> <span class="s2">&quot;This is a sentence&quot;</span> <span class="s2">&quot;this is a sentense.&quot;</span>
<span class="o">=&gt;</span> <span class="no">true</span>
</code></pre></div>
</div>
<p>Located at <a href="https://github.com/NixOS/nixpkgs/blob/master/lib/strings.nix#L1281">lib/strings.nix:1281</a> in <code>&lt;nixpkgs&gt;</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>