Class Writer

extends Object
A lightweight writer wrapper that enhances the the user experience of the underlying writer.
The internal writer must have the following method: write data -> int
It can optionally have close and close_writer, which are transparently forwarded from the Writer to the internal writer.
Deprecated. Use io.Writer instead.

Class summary


constructor writer_/any
Constructs a writer

Constructors

constructor writer_/any
Constructs a writer

Methods

close -> none
Closes the writer.
The internal writer must have a close method.

close-write -> none
Closes the writer.
The internal writer must have a close_writer method.

operator == other/any -> bool
Whether this object is equal to the other.
By default, identical is used for equality.
Inheritance
Classes overwrite this operator to get an equality specific to their needs. Equality operators often compare the type and field contents. For example:

class Pin:
  number/int

  constructor .number:

  operator == other:
    if other is not Pin: return false
    return number == other.number
A class doesn't have to follow the above format, but it must keep the operator in sync with any hash-code method. That is, if a class has a hash-code member, then the equality and hash-code must agree. If two instances are equal (a == b), then their hash codes must also be equal (a.hash-code == b.hash-code).

Stringifies this object.
Inheritance
Objects that need a human-friendly string representation should overwrite this method. The default string is based on the internal class-ID.

write data/Data from/int=0 to/int=data.byte-size -> any
Writes the given data.
The internal writer might not be able to handle all of the data in one go. In that case, the method invokes the internal writer's write method multiple times until all data has been processed.
If the internal writer has an error, it is not possible to see how much data was written. If it is necessary to know how much data was correctly written, then the internal writer must be used directly.
May yield.

write-from reader/Reader -> none
Writes everything provided by the reader.