


## threadkit-base-io-g.pkg
# Compiled by:
# src/lib/std/standard.lib# This generic is invoked (only) in:
#
# src/lib/std/src/io/threadkit-binary-base-io.pkg# src/lib/std/src/io/threadkit-text-base-io.pkg#
generic package threadkit_base_io_g (
# ===================
#
package vector: Typelocked_Vector; # Typelocked_Vector is from src/lib/std/src/typelocked-vector.api package rw_vector: Typelocked_Rw_Vector; # Typelocked_Rw_Vector is from src/lib/std/src/typelocked-rw-vector.api package vector_slice: Typelocked_Vector_Slice; # Typelocked_Vector_Slice is from src/lib/std/src/typelocked-vector-slice.api package rw_vector_slice: Typelocked_Rw_Vector_Slice; # Typelocked_Rw_Vector_Slice is from src/lib/std/src/typelocked-rw-vector-slice.api sharing vector::Vector == rw_vector::Vector ==
vector_slice::Vector == rw_vector_slice::Vector;
sharing vector::Element == rw_vector::Element ==
vector_slice::Element == rw_vector_slice::Element;
sharing rw_vector_slice::Vector_Slice == vector_slice::Slice;
some_element: vector::Element;
eqtype File_Position;
compare: ((File_Position, File_Position)) -> Order;
)
: (weak) Threadkit_Base_Io # Threadkit_Base_Io is from src/lib/std/src/io/threadkit-base-io.api{
Mailop(X)
=
threadkit::Mailop(X);
package a = rw_vector; # rw_vector is from src/lib/std/src/rw-vector.pkg package v = vector; # vector is from src/lib/std/src/vector.pkg Element = a::Element;
Vector = v::Vector;
Rw_Vector = a::Rw_Vector;
Rw_Vector_Slice = rw_vector_slice::Slice;
Vector_Slice = vector_slice::Slice;
File_Position = File_Position;
compare = compare;
Reader
=
READER {
name: String,
chunk_size: Int,
read_vector: Int -> Vector,
read_rw_vector: Rw_Vector_Slice -> Int,
read_vec_mailop: Int -> Mailop( Vector ),
read_arr_mailop: Rw_Vector_Slice -> Mailop( Int ),
avail: Void -> Null_Or( Int ),
get_position: Null_Or( Void -> File_Position ),
set_position: Null_Or( File_Position -> Void ),
end_position: Null_Or( Void -> File_Position ),
verify_position: Null_Or( Void -> File_Position ),
close: Void -> Void,
io_descriptor: Null_Or( winix::io::Io_Descriptor )
};
Writer
=
WRITER {
name: String,
chunk_size: Int,
write_vector: Vector_Slice -> Int,
write_rw_vector: Rw_Vector_Slice -> Int,
write_vec_mailop: Vector_Slice -> Mailop( Int ),
write_arr_mailop: Rw_Vector_Slice -> Mailop( Int ),
end_position: Null_Or( Void -> File_Position ),
verify_position: Null_Or( Void -> File_Position ),
get_position: Null_Or( Void -> File_Position ),
set_position: Null_Or( File_Position -> Void ),
close: Void -> Void,
io_descriptor: Null_Or( winix::io::Io_Descriptor )
};
}; # base_io
## COPYRIGHT (c) 1991 John H. Reppy.
## COPYRIGHT (c) 1996 AT&T Research.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2011,
## released under Gnu Public Licence version 3.


