Contains standard libraries for ZenCode.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

StringReader.zs 650B

12345678910111213141516171819202122232425262728293031
  1. [Native("io::StringReader")]
  2. public class StringReader {
  3. val data as char[];
  4. var offset as usize;
  5. [Native("constructor")]
  6. public this(value as string) {
  7. data = value.characters;
  8. }
  9. public implements Reader {
  10. [Native("destructor")]
  11. ~this {}
  12. [Native("readCharacter")]
  13. read()
  14. => offset == data.length ? -1 : data[offset++];
  15. [Native("readArray")]
  16. read(buffer)
  17. => read(buffer, 0, buffer.length);
  18. [Native("readSlice")]
  19. read(buffer, offset, length) {
  20. length = usize.min(data.length - this.offset, length);
  21. data.copyTo(buffer, this.offset, offset, length);
  22. this.offset += length;
  23. return length;
  24. }
  25. }
  26. }