| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Turtle.Line
- data Line
- lineToText :: Line -> Text
- textToLines :: Text -> [Line]
- linesToText :: [Line] -> Text
- textToLine :: Text -> Maybe Line
- unsafeTextToLine :: Text -> Line
- data NewlineForbidden = NewlineForbidden
Documentation
A line of text (does not contain newlines).
lineToText :: Line -> Text #
Convert a line to a text value.
textToLines :: Text -> [Line] #
Split text into lines. The inverse of linesToText.
linesToText :: [Line] -> Text #
Merge lines into a single text value.
textToLine :: Text -> Maybe Line #
Try to convert a text value into a line. Precondition (checked): the argument does not contain newlines.
unsafeTextToLine :: Text -> Line #
Convert a text value into a line. Precondition (unchecked): the argument does not contain newlines.
data NewlineForbidden #
The NewlineForbidden exception is thrown when you construct a Line
using an overloaded string literal or by calling fromString explicitly
and the supplied string contains newlines. This is a programming error to
do so: if you aren't sure that the input string is newline-free, do not
rely on the instance.IsString Line
When debugging, it might be useful to look for implicit invocations of
fromString for Line:
>>>sh (do { line <- "Hello\nWorld"; echo line })*** Exception: NewlineForbidden
In the above example, echo expects its argument to be a Line, thus
line :: . Since we bind Lineline in Shell, the string literal
"Hello\nWorld" has type . The
Shell Line instance delegates the construction of a
IsString (Shell Line)Line to the instance, where the exception is thrown.IsString Line
To fix the problem, use textToLines:
>>>sh (do { line <- select (textToLines "Hello\nWorld"); echo line })Hello World
Constructors
| NewlineForbidden |
Instances