Mercurial Hosting > luan
changeset 590:f050c30952c0
add Io.schemes.null
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 27 Aug 2015 08:35:03 -0600 |
parents | 97c8ae330efe |
children | 790d5de23042 |
files | core/src/luan/modules/IoLuan.java |
diffstat | 1 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
diff -r 97c8ae330efe -r f050c30952c0 core/src/luan/modules/IoLuan.java --- a/core/src/luan/modules/IoLuan.java Wed Aug 26 04:38:37 2015 -0600 +++ b/core/src/luan/modules/IoLuan.java Thu Aug 27 08:35:03 2015 -0600 @@ -302,6 +302,30 @@ } } + private static final LuanIO nullIO = new LuanIO() { + private final InputStream in = new InputStream() { + @Override public int read() { + return -1; + } + }; + private final OutputStream out = new OutputStream() { + @Override public void write(int b) {} + }; + + @Override InputStream inputStream() { + return in; + } + + @Override OutputStream outputStream() { + return out; + } + + @Override public String to_string() { + return "<null>"; + } + + }; + public static final class LuanString extends LuanIO { private String s; @@ -487,6 +511,10 @@ } } + public static LuanTable null_() { + return nullIO.table(); + } + public static LuanTable string(LuanState luan,String s) throws LuanException { Utils.checkNotNull(luan,s); return new LuanString(s).table(); @@ -558,6 +586,7 @@ public static LuanTable newSchemes() { LuanTable schemes = new LuanTable(); try { + schemes.rawPut( "null", new LuanJavaFunction(IoLuan.class.getMethod("null_"),null) ); add( schemes, "string", LuanState.class, String.class ); add( schemes, "file", LuanState.class, String.class, Boolean.class ); add( schemes, "classpath", LuanState.class, String.class, Boolean.class );