ConsoleStandardIO.cs 933 B

12345678910111213141516171819202122232425262728293031323334
  1. using Lua.Standard.Internal;
  2. namespace Lua.IO;
  3. /// <summary>
  4. /// Default implementation of ILuaStandardIO using Console
  5. /// </summary>
  6. public sealed class ConsoleStandardIO : ILuaStandardIO
  7. {
  8. ILuaStream? standardInput;
  9. public ILuaStream Input =>
  10. standardInput ??=
  11. new StandardIOStream(ILuaStream.CreateFromStream(
  12. ConsoleHelper.OpenStandardInput(),
  13. LuaFileOpenMode.Read));
  14. ILuaStream? standardOutput;
  15. public ILuaStream Output =>
  16. standardOutput ??=
  17. new StandardIOStream(ILuaStream.CreateFromStream(
  18. ConsoleHelper.OpenStandardOutput(),
  19. LuaFileOpenMode.Write));
  20. ILuaStream? standardError;
  21. public ILuaStream Error =>
  22. standardError ??=
  23. new StandardIOStream(ILuaStream.CreateFromStream(
  24. ConsoleHelper.OpenStandardError(),
  25. LuaFileOpenMode.Write));
  26. }