Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
api:buffer [2016/06/19 05:35]
payonel
api:buffer [2016/06/19 05:54]
payonel [Interface Methods]
Line 127: Line 127:
 The following methods are expected to be implemented on the buffered streams passed to `buffer.new`. The following methods are expected to be implemented on the buffered streams passed to `buffer.new`.
  
-- close+`close() ok, reason`
  
-write+  Close handles, release resources, disconnect ​-- and return success
  
-read+`write(arg: string) ok, reason`
  
-- seek+  Write `arg` as bytes, assume a string of plain unformatted chars. Return falsey and reason on failure. 
 + 
 +`read(n: number) ok, reason` 
 + 
 +  Return `n` unicode chars. The caller assumes there is more data to read until `nil` is returned. A empty string or a string shorter than `n` chars long is a valid return, but the caller may assume there is more data to request until `nil` is returned. 
 + 
 +- `seek([whence:​ string], [offset: number]) [offset from start] or falsey, reason` 
 + 
 +  Refer to `b:seek()` for details. In short, move the stream position to `offset` from `whence`, and return the `offset` from the start of the stream of the position after the seek operation. Note that `seek("​cur",​ 0)` is a valid request, typical of the caller wanting to determine the current position of the stream. Your stream is not required to support `seek`, in such case (or in any case of failure) you should return nil, and the reason (as a string) for the failure.