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

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 contents index
Next: Random numbers Up: Input/output Previous: Streams

The Cecil project