Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Line
- lineToText :: Line -> Text
- textToLines :: Text -> NonEmpty 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 Source #
Convert a line to a text value.
textToLines :: Text -> NonEmpty Line Source #
Split text into lines. The inverse of linesToText
.
linesToText :: [Line] -> Text Source #
Merge lines into a single text value.
textToLine :: Text -> Maybe Line Source #
Try to convert a text value into a line. Precondition (checked): the argument does not contain newlines.
unsafeTextToLine :: Text -> Line Source #
Convert a text value into a line. Precondition (unchecked): the argument does not contain newlines.
data NewlineForbidden Source #
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 Line
line
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
Instances
Show NewlineForbidden Source # | |
Defined in Turtle.Line showsPrec :: Int -> NewlineForbidden -> ShowS # show :: NewlineForbidden -> String # showList :: [NewlineForbidden] -> ShowS # | |
Exception NewlineForbidden Source # | |
Defined in Turtle.Line |