nushell/crates/nu-std
mike 39e51f1953
add more commands to std iter (#9129)
# Description

this pr adds the following commands to `std iter`
- `iter find-index` -> returns the index of the first element that
matches the predicate or `-1` if none
- `iter flat-map` -> maps a closure to each nested structure and
flattens the result
- `iter zip-with` -> zips two structures and applies a closure to each
of the zips

it also fixes some \*\*very minor\*\* inconsistencies in the module
2023-05-10 19:18:42 +02:00
..
lib add more commands to std iter (#9129) 2023-05-10 19:18:42 +02:00
src REFACTOR: move the banner from the rust source to the standard library (#8406) 2023-05-10 07:05:01 -05:00
tests add more commands to std iter (#9129) 2023-05-10 19:18:42 +02:00
Cargo.toml Bump to 0.79.1 dev version (#8998) 2023-04-26 01:05:23 +02:00
CONTRIBUTING.md refactor the CONTRIBUTING.md guidelines for nu-std (#8912) 2023-04-19 22:21:27 +02:00
LICENSE add LICENSE to nu-std (#8803) 2023-04-07 13:39:21 -07:00
README.md refactor the CONTRIBUTING.md guidelines for nu-std (#8912) 2023-04-19 22:21:27 +02:00

Welcome to the standard library of `nushell`!

The standard library is a pure-nushell collection of custom commands which provide interactive utilities and building blocks for users writing casual scripts or complex applications.

To see what's here:

> use std
> help commands | select name usage | where name =~ "std "
╭────┬─────────────────────────────┬────────────────────────────────────────────────────────────────╮
│  # │            name             │                                usage                           │
├────┼─────────────────────────────┼────────────────────────────────────────────────────────────────┤
│  0 │ std assert                  │ Universal assert command                                       │
│  1 │ std assert equal            │ Assert $left == $right                                         │
           . . .
│ 11 │ std clip                    │ put the end of a pipe into the system clipboard.               │
│ 12 │ std dirs add                │ Add one or more directories to the list.                       │
           . . .
├────┼─────────────────────────────┼────────────────────────────────────────────────────────────────┤
│  # │            name             │                                usage                           │
╰────┴─────────────────────────────┴────────────────────────────────────────────────────────────────╯

🧰 Using the standard library in the REPL or in scripts

All commands in the standard library must be "imported" into the running environment (the interactive read-execute-print-loop (REPL) or a .nu script) using the use command.

You can choose to import the whole module, but then must refer to individual commands with a std prefix, e.g:

use std

std log debug "Running now"
std assert (1 == 2)

Or you can enumerate the specific commands you want to import and invoke them without the std prefix.

use std ["log debug" assert]

log debug "Running again"
assert (2 == 1)

This is probably the form of import you'll want to add to your env.nu for interactive use.

✏️ contribute to the standard library

You're invited to contribute to the standard library! See CONTRIBUTING.md for details