Fuzion Logo
fuzion-lang.dev — The Fuzion Language Portal
JavaScript seems to be disabled. Functionality is limited.

io/print_effect.fz


# This file is part of the Fuzion language implementation.
#
# The Fuzion language implementation is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License as published
# by the Free Software Foundation, version 3 of the License.
#
# The Fuzion language implementation is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License along with The
# Fuzion language implementation.  If not, see <https://www.gnu.org/licenses/>.


# -----------------------------------------------------------------------
#
#  Tokiwa Software GmbH, Germany
#
#  Source code of Fuzion standard library feature print_effect
#
#  Author: Fridtjof Siebert (siebert@tokiwa.software)
#
# -----------------------------------------------------------------------

# print_effect -- effect providing an output stream
#
# This is used as heir feature for effects such as io.out and io.err.
#
public print_effect (p Print_Handler) : simple_effect
is

  # print the given string followed be new line
  #
  public println (s Any) =>
    p.println s
    replace

  # print the given string
  #
  public print (s Any) =>
    p.print s
    replace

  # print new line
  #
  public println =>
    p.println
    replace


public Print_Handler ref is

  println(s Any) =>
    print (s.as_string + (codepoint 10))

  println =>
    print (codepoint 10)

  public print(s Any) unit => abstract