### sub fold
```perl6
sub fold(
Str:D $string,
Int:D :$width where { ... } = 80,
Int:D :$indent where { ... } = 0
) returns Str
```
Fold a string to contain no lines longer than the given width.
class Str:D $string
-------------------
The string to fold.
class Int:D :$width where { ... } = 80
--------------------------------------
The maximum width of lines in the text.
class Int:D :$indent where { ... } = 0
--------------------------------------
The number of spaces used to indent the text.
### sub new-line-length
```perl6
sub new-line-length(
Str:D @words,
Str:D $new-word,
Int:D $indent-width
) returns Int
```
Calculate the total line length of a would-be line.
NAME
====
String::Fold
AUTHOR
======
Patrick Spek
VERSION
=======
0.1.1
SYNOPSIS
========
fold(Str:D $, Int:D :$width, Int:D :$indent);
DESCRIPTION
===========
Fold a `Str` to a given width. Accepts a `:$width`Defaults to `80` and a `:$indent`Defaults to `0`.
EXAMPLES
========
Basic usage
-----------
input
=====
use String::Fold;
my Str $folded = fold(slurp("some-text-file"));
This will yield a folded string in `$folded`. The input file will have all its lines folded to a maximum width of 80 characters.
Folding at a custom width
-------------------------
input
=====
use String::Fold;
my Str $folded = slurp("some-text-file").&fold(:width(40));
This will yield a string folded at 40 characters, instead of the default of 80 characters. Any number higher that `0` is accepted.
Indented block
--------------
input
=====
use String::Fold;
my Str $indented = slurp("some-text-file").&fold(:indent(8));
This will yield a string folded at 80 characters (the default), and indented by 8 spaces.