next up previous index
Next: Random numbers Up: Input/output Previous: Streams   Index

stream_views ; view_stream

In indexed-stream.cecil:

template representation indexed_stream_view[T] isa positionable_stream[T];
  method position(v@:indexed_stream_view[`T]):int;
  method set_position(v@:indexed_stream_view[`T], p:int,
                      off_end:&():void):void;
  method peek_next(v@:indexed_stream_view[`T], at_end:&():T):T;
  method peek_prev(v@:indexed_stream_view[`T], at_start:&():T):T;
  method length(v@:indexed_stream_view[`T]):int;
  method view_stream(c@:indexed[`T]):positionable_stream[T];
template representation m_indexed_stream_view[T] isa m_positionable_stream[T],
                                             indexed_stream_view[T];
  method set_peek_next(v@:m_indexed_stream_view[`T], x:T):void;
  method set_peek_prev(v@:m_indexed_stream_view[`T], x:T):void;
  method view_stream(c@:m_indexed[`T]):m_positionable_stream[T];
Stream views of indexed collections are fully positionable, but not insertable, extensible, or removable. (Stream views of arrays could be made extensible.) In list-stream.cecil:

template object list_stream_view[T] isa m_stream[T],
                              removable_stream[T], insertable_stream[T];
method view_stream(l@:simple_list[`T]):list_stream_view[T];
method is_at_end(s@:list_stream_view[`T]):bool;
method is_at_start(s@:list_stream_view[`T]):bool;
method forward(s@:list_stream_view_before_end[`T], at_end:&():void):void;
method peek_next(s@:list_stream_view_before_end[`T], at_end:&():T):T;
method set_peek_next(s@:list_stream_view_before_end[`T], x:T):void;
method remove_next(s@:list_stream_view_before_end[`T]):void;
method insert(s@:list_stream_view[`T], x:T):void;
template representation m_list_stream_view[T] isa list_stream_view[T];
method view_stream(l@:m_list[`T]):m_list_stream_view[T];
method insert(s@:m_list_stream_view_at_start[`T], x:T):void;
Stream views of lists are not positionable or extensible but are insertable and removable.


next up previous index
Next: Random numbers Up: Input/output Previous: Streams   Index

Cecil/Vortex Project