Code/SandboxTerminal.cs
using System;
using System.IO;
using System.Text;
using WasmBox.Pixie.Terminal.Devices;
using WasmBox.Wasm.Interpret;

namespace WasmBox;

public class SandboxTerminal : TextWriterTerminal {
    public SandboxTerminal() : base(new SandboxLogTextWriter(), 60, NoStyleManager.Instance, Encoding.UTF8) { }
}

internal class SandboxLogTextWriter : TextWriter {
    public override Encoding Encoding => Encoding.UTF8;

    private StringBuilder buffer = new();

    public override void Write( char value ) {
        buffer.Append( value );
    }

	public override void Write( string value ) {
        buffer.Append( value );
	}

    public override void WriteLine() {
        buffer.Append( '\n' );
        Flush();
	}

    public override void WriteLine( string value ) {
        buffer.Append( value );
        WriteLine();
	}

    public override void Flush() {
        Log.Info( buffer.ToString() );
        buffer = new();
    }
}