☰
file
io.file
file -- a unit type that contains effects related to file I/O
Reference Constructors
reference to the seek operations that could be provided
reference to the writing operations that could take place
Value Constructors
delete -- effect wrapping the file delete operation
move -- effect wrapping the file move operation
read -- effect providing byte reading operations from files
seek -- effect providing stream seeking operations
stat -- effect providing operations to retrieve file stats
write -- effect providing writing operations for files
Functions
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
create `"instance[T]"` where `T` is the dynamic type of `a`
short-hand for accessing delete effect in current environment and performing the default delete operation using io.file.delete.delete path
deletes the file/dir found in the path
returns unit as outcome in case of successful deletion and error in case of failure
if the targeted dir has content, then the return value will be error and the deletion will not take place
deletes the file/dir found in the path
returns unit as outcome in case of successful deletion and error in case of failure
if the targeted dir has content, then the return value will be error and the deletion will not take place
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
short-hand for accessing move effect in current environment and performing the default move operation using
io.file.move.move old_path new_path
moves file/dir from an old path to a the new path
can rename the file/dir as well by changing the name of the old file/dir to a new name in the new_path
returns a unit type as outcome in case of success and error in case of failure
io.file.move.move old_path new_path
moves file/dir from an old path to a the new path
can rename the file/dir as well by changing the name of the old file/dir to a new name in the new_path
returns a unit type as outcome in case of success and error in case of failure
short hand to get the currently
installed open effect
from the environment.
see `use` on how to use this.
installed open effect
from the environment.
see `use` on how to use this.
short hand to get the currently
installed open effect
for type T from the environment.
see `use` on how to use this.
installed open effect
for type T from the environment.
see `use` on how to use this.
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
short-hand for accessing read effect in current environment
short-hand for accessing the stat effect in current environment
short-hand for accessing and using stats/lstats provided by the stat effect in current environment
in success it will return a meta_data outcome storing stats regarding the file/dir
in case of failure an error will be returned
resolve flag is used to indicate whether to resolve sym links or not
NYI: lstats behaves the same as stats in the interpreter
in success it will return a meta_data outcome storing stats regarding the file/dir
in case of failure an error will be returned
resolve flag is used to indicate whether to resolve sym links or not
NYI: lstats behaves the same as stats in the interpreter
§(R type, file_name String, m io.this.file.this.mode.val, code Function (outcome io.file.use.R)):Any => outcome io.file.use.R
§(R
type
, file_name String, m io.this.file.this.mode.val, code Function (outcome io.file.use.R)):
Any =>
outcome io.file.use.Rshort hand for use when
it is not necessary to distinguish between opens
usage example:
it is not necessary to distinguish between opens
usage example:
§(T type, R type, file_name String, m io.this.file.this.mode.val, code Function (outcome io.file.use.R)):Any => outcome io.file.use.R
§(T
type
, R type
, file_name String, m io.this.file.this.mode.val, code Function (outcome io.file.use.R)):
Any =>
outcome io.file.use.Rthis opens a file with the given mode and installs
effect (open T) to be used in `code()`.
type parameter T is used to distinguish between several open files.
usage example:
effect (open T) to be used in `code()`.
type parameter T is used to distinguish between several open files.
usage example:
short-hand for accessing write effect in current environment
Reference Types
reference to the delete operations that could take place
reference to the move operations that could take place
reference to the reading operations that could take place
reference to the seek operations that could be provided
reference to the stats that could be provided
reference to the writing operations that could take place
Value Types
effect for manipulating open files
T is used to distinguish several open files
T is used to distinguish several open files
unit type used internally by open- and use-
short hands which can be used when one does not need
to distinguish between several open files.
short hands which can be used when one does not need
to distinguish between several open files.
Type Features
string representation of this type to be used for debugging.
result has the form "Type of '<name>'", but this might change in the future
result has the form "Type of '<name>'", but this might change in the future
There is no dynamic type of a type instance since this would result in an
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
endless hierarchy of types, so dynamic_type is redefined to just return
Type.type here.
Is this type assignable to a type parameter with constraint `T`?
The result of this is a compile-time constant that can be used to specialize
code for a particular type.
is_of_integer_type(n T : numeric) => T : integer
say (is_of_integer_type 1234) # true
say (is_of_integer_type 3.14) # false
it is most useful in conjunction preconditions or `if` statements as in
pair(a,b T) is
=>
or
val(n T) is
The result of this is a compile-time constant that can be used to specialize
code for a particular type.
is_of_integer_type(n T : numeric) => T : integer
say (is_of_integer_type 1234) # true
say (is_of_integer_type 3.14) # false
it is most useful in conjunction preconditions or `if` statements as in
pair(a,b T) is
=>
or
val(n T) is
name of this type, including type parameters, e.g. 'option (list i32)'.
Get a type as a value.
This is a feature with the effect equivalent to Fuzion's `expr.type` call tail.
It is recommended to use `expr.type` and not `expr.type_value`.
`type_value` is here to show how this can be implemented and to illustrate the
difference to `dynamic_type`.
This is a feature with the effect equivalent to Fuzion's `expr.type` call tail.
It is recommended to use `expr.type` and not `expr.type_value`.
`type_value` is here to show how this can be implemented and to illustrate the
difference to `dynamic_type`.