walk.cpp 410 B

12345678910111213141516171819202122
  1. #include "walk.h"
  2. #include <util/generic/string.h>
  3. void IWalkInput::DoUndo(size_t len) {
  4. Len_ += len;
  5. Buf_ = static_cast<const char*>(Buf_) - len;
  6. }
  7. size_t IWalkInput::DoNext(const void** ptr, size_t len) {
  8. if (!Len_) {
  9. Len_ = DoUnboundedNext(&Buf_);
  10. }
  11. len = Min(Len_, len);
  12. *ptr = Buf_;
  13. Buf_ = static_cast<const char*>(Buf_) + len;
  14. Len_ -= len;
  15. return len;
  16. }