PreviousUpNext

14.2.10  File

The standard library File api defines basic text-mode file I/O.

The File api is implemented by the file package.

The File api source code is in src/lib/std/src/io/file.api.

The above information is manually maintained and may contain errors.

api {    Vector  = String;
    Element  = Char;
    Input_Stream ;
    Output_Stream ;
    mutex : pthread::Mutex;
    read : Input_Stream -> Vector;
    read_one : Input_Stream -> Null_Or(Element );
    read_n : (Input_Stream , Int) -> Vector;
    read_all : Input_Stream -> Vector;
    can_read : (Input_Stream , Int) -> Null_Or(Int );
    lookahead : Input_Stream -> Null_Or(Element );
    close_input : Input_Stream -> Void;
    end_of_stream : Input_Stream -> Bool;
    write : (Output_Stream , Vector) -> Void;
    write_one : (Output_Stream , Element) -> Void;
    flush : Output_Stream -> Void;
    close_output : Output_Stream -> Void;
    package pio : api {
                      Vector  = String;
                      Element  = Char;
                      Stream_Reader ;
                      Stream_Writer ;
                      Input_Stream ;
                      Output_Stream ;
                      File_Position ;
                      Out_Position ;
                      make_instream : (Stream_Reader , Vector) -> Input_Stream;
                      read : Input_Stream -> (Vector , Input_Stream);
                      read_one : Input_Stream -> Null_Or(((Element , Input_Stream)) );
                      read_n : (Input_Stream , Int) -> (Vector , Input_Stream);
                      read_all : Input_Stream -> (Vector , Input_Stream);
                      can_read : (Input_Stream , Int) -> Null_Or(Int );
                      close_input : Input_Stream -> Void;
                      end_of_stream : Input_Stream -> Bool;
                      get_reader : Input_Stream -> (Stream_Reader , Vector);
                      file_position_in : Input_Stream -> File_Position;
                      make_outstream : (Stream_Writer , io_exceptions::Buffering_Mode)
                                       -> Output_Stream;
                      write : (Output_Stream , Vector) -> Void;
                      write_one : (Output_Stream , Element) -> Void;
                      flush : Output_Stream -> Void;
                      close_output : Output_Stream -> Void;
                      set_buffering_mode : (Output_Stream , io_exceptions::Buffering_Mode) -> Void;
                      get_buffering_mode : Output_Stream -> io_exceptions::Buffering_Mode;
                      get_writer : Output_Stream
                                   -> (Stream_Writer , io_exceptions::Buffering_Mode);
                      file_pos_out : Out_Position -> File_Position;
                      get_output_position : Output_Stream -> Out_Position;
                      set_output_position : Out_Position -> Void;
                      read_line : Input_Stream -> Null_Or(((String , Input_Stream)) );
                      write_substring : (Output_Stream , Substring) -> Void;
                  };;
    make_instream : pio::Input_Stream -> Input_Stream;
    get_instream : Input_Stream -> pio::Input_Stream;
    set_instream : (Input_Stream , pio::Input_Stream) -> Void;
    get_output_position : Output_Stream -> pio::Out_Position;
    set_output_position : (Output_Stream , pio::Out_Position) -> Void;
    make_outstream : pio::Output_Stream -> Output_Stream;
    get_outstream : Output_Stream -> pio::Output_Stream;
    set_outstream : (Output_Stream , pio::Output_Stream) -> Void;
    read_line : Input_Stream -> Null_Or(String );
    read_lines : Input_Stream -> List(String );
    lines : String -> List(String );
    write_substring : (Output_Stream , Substring) -> Void;
    from_lines : String -> List(String ) -> Void;
    exists : String -> Bool;
    open_for_read : String -> Input_Stream;
    open_string : String -> Input_Stream;
    open_for_write : String -> Output_Stream;
    open_for_append : String -> Output_Stream;
    stdin : Input_Stream;
    stdout : Output_Stream;
    stderr : Output_Stream;
    print : String -> Void;
    scan_stream : (number_string::Reader((Element, pio::Input_Stream) )
                   -> number_string::Reader((X, pio::Input_Stream) ))
                  -> Input_Stream -> Null_Or(X );
    say : (Void -> String) -> Void;
    log : (Void -> String) -> Void;
    exception NO_SUCH_LOGTREE_NODE;
    Logtree_Node 
      = LOGTREE_NODE {children:Ref(List(Logtree_Node ) ), 
                      logging:Ref(Bool ),  name:String, 
                      parent:Null_Or(Logtree_Node )};
    Log_To 
      = LOG_TO_FILE String
      | LOG_TO_NULL
      | LOG_TO_STDERR
      | LOG_TO_STDOUT
      | LOG_TO_STREAM Output_Stream;
    logger_cleanup : Ref((Void -> Void) );
    set_logger_to : Log_To -> Void;
    logger_is_set_to : Void -> Log_To;
    all_logging : Logtree_Node;
    standardlib_logging : Logtree_Node;
    compiler_logging : Logtree_Node;
    make_logtree_leaf : {name:String,  parent:Logtree_Node} -> Logtree_Node;
    name_of_logtree_node : Logtree_Node -> String;
    parent_of_logtree_node : Logtree_Node -> Null_Or(Logtree_Node );
    enable : Logtree_Node -> Void;
    disable : Logtree_Node -> Void;
    enable_node : Logtree_Node -> Void;
    am_logging : Logtree_Node -> Bool;
    subtree_nodes_and_log_flags : Logtree_Node -> List(((Logtree_Node , Bool)) );
    ancestors_of_logtree_node : Logtree_Node -> List(String );
    find_logtree_node_by_name : String -> Logtree_Node;
    print_logtree : Void -> Void;
    logprint : String -> Void;
    log_if : Logtree_Node -> (Void -> String) -> Void;
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext