struct Iterator { ~void data, int size, current, _elsz } /; method Iterator /; init (~void data, int count, int elsz) self.data = data self.size = size self._elsz = elsz self.current = 0 ;/ /; next (int count) self.current = self.current + count /; if (self.current >= self.size) self.current = self.size ;/ ;/ /; prev (int count) self.current = self.current - count /; if (self.current < 0) self.current = 0 ;/ ;/ /; get [~void] return self.data + current * _elsz ;/ /; end [bool] return self.current >= self.size ;/ ;/