Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private @safe struct BytesReader(A = const ubyte[])
- {
- A arr;
- size_t currIdx;
- this(A a)
- {
- arr = a;
- }
- T* read(T)() @trusted
- {
- const incremented = currIdx + T.sizeof;
- // Malformed buffer?
- if(incremented > arr.length)
- throw new AnswerException(ExceptionType.FATAL_ERROR, null);
- auto ret = cast(T*) &arr[currIdx];
- currIdx = incremented;
- return ret;
- }
- A readBuff(size_t len)
- in(len >= 0) // <-- here -------------------------------------------------------------------
- {
- const incremented = currIdx + len;
- // Malformed buffer?
- if(incremented > arr.length)
- throw new AnswerException(ExceptionType.FATAL_ERROR, null);
- auto ret = arr[currIdx .. incremented];
- currIdx = incremented;
- return ret;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement