# Module Lwt_text

    module Lwt_text: sig .. end

Text channels

This modules implements text channels. A text channel is basically a byte channel (as in `Lwt_io`) plus a character encoding.

It has almost the same interface as `Lwt_io` except that it uses `Text.t` in place of `string` and `char`

###### Types

    type 'mode channel

Type of a text channel

    type input_channel = Lwt_io.input channel

Type of a text input channel

    type output_channel = Lwt_io.output channel

Type of a text output channel

###### Creation/manipulation

    val make : ?strict:bool ->
           ?encoding:Encoding.t -> 'a Lwt_io.channel -> 'a channel

`make ?strict ?encoding ch` creates a text channel from a byte channel.
`strict` : tell whether encoding/decoding must be ``strict'', which whether the encoder/decoder should fail on invalid sequence. In non-strict mode, it transparently fallback to ISO-8859-15. By the way it is ensured that `read*` functions always returns valid UTF-8 encoded text. `strict` defaults to `false`.
`encoding` : is the character encoding used for the channel. It defaults to `Encoding.system`.

    val byte_channel : 'a channel -> 'a Lwt_io.channel

`byte_channel ch` returns the underlying byte channel of a text channel

    val encoding : 'a channel -> Encoding.t

`encoding ch` returns the character encoding of a channel.

    val flush : output_channel -> unit Lwt.t

Flush the underlying byte channel

    val close : 'a channel -> unit Lwt.t

Close the underlying byte channel

###### Lwt_io like values

    val atomic : ('a channel -> 'b Lwt.t) -> 'a channel -> 'b Lwt.t

    val stdin : input_channel

    val stdout : output_channel

    val stderr : output_channel

    val zero : input_channel

    val null : output_channel

    val read_char : input_channel -> Text.t Lwt.t

    val read_char_opt : input_channel -> Text.t option Lwt.t

    val read_chars : input_channel -> Text.t Lwt_stream.t

    val read_line : input_channel -> Text.t Lwt.t

    val read_line_opt : input_channel -> Text.t option Lwt.t

    val read_lines : input_channel -> Text.t Lwt_stream.t

    val read : ?count:int -> input_channel -> Text.t Lwt.t

    val write_char : output_channel -> Text.t -> unit Lwt.t

    val write_chars : output_channel -> Text.t Lwt_stream.t -> unit Lwt.t

    val write : output_channel -> Text.t -> unit Lwt.t

    val write_line : output_channel -> Text.t -> unit Lwt.t

    val write_lines : output_channel -> Text.t Lwt_stream.t -> unit Lwt.t

    val open_file : ?buffer_size:int ->
           ?strict:bool ->
           ?encoding:Encoding.t ->
           ?flags:Unix.open_flag list ->
           ?perm:Unix.file_perm ->
           mode:'a Lwt_io.mode -> Lwt_io.file_name -> 'a channel Lwt.t

    val with_file : ?buffer_size:int ->
           ?strict:bool ->
           ?encoding:Encoding.t ->
           ?flags:Unix.open_flag list ->
           ?perm:Unix.file_perm ->
           mode:'a Lwt_io.mode ->
           Lwt_io.file_name -> ('a channel -> 'b Lwt.t) -> 'b Lwt.t

    val lines_of_file : Lwt_io.file_name -> Text.t Lwt_stream.t

    val lines_to_file : Lwt_io.file_name -> Text.t Lwt_stream.t -> unit Lwt.t

    val chars_of_file : Lwt_io.file_name -> Text.t Lwt_stream.t

    val chars_to_file : Lwt_io.file_name -> Text.t Lwt_stream.t -> unit Lwt.t

    val fprint : output_channel -> Text.t -> unit Lwt.t

    val fprintl : output_channel -> Text.t -> unit Lwt.t

    val fprintf : output_channel ->
           ('a, unit, Text.t, unit Lwt.t) Pervasives.format4 -> 'a

    val fprintlf : output_channel ->
           ('a, unit, Text.t, unit Lwt.t) Pervasives.format4 -> 'a

    val print : Text.t -> unit Lwt.t

    val printl : Text.t -> unit Lwt.t

    val printf : ('a, unit, Text.t, unit Lwt.t) Pervasives.format4 -> 'a

    val printlf : ('a, unit, Text.t, unit Lwt.t) Pervasives.format4 -> 'a

    val eprint : Text.t -> unit Lwt.t

    val eprintl : Text.t -> unit Lwt.t

    val eprintf : ('a, unit, Text.t, unit Lwt.t) Pervasives.format4 -> 'a

    val eprintlf : ('a, unit, Text.t, unit Lwt.t) Pervasives.format4 -> 'a

    val hexdump_stream : output_channel -> char Lwt_stream.t -> unit Lwt.t

    val hexdump : output_channel -> string -> unit Lwt.t