/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IBufferedCharacterConsumer.hpp Date: 2022-1-29 Author: Reece ***/ #pragma once namespace Aurora::IO::Character { struct IBufferedCharacterConsumer { virtual bool HasBufferedNext() const = 0; virtual AuUInt8 NextBufferedByte() const = 0; virtual bool PeekNext(AuUInt8 &out) = 0; virtual AuUInt8 GetCurrent() = 0; virtual bool Next(AuUInt8 &out) = 0; }; AUKN_SHARED_API(BufferConsumerFromProvider, IBufferedCharacterConsumer, const AuSPtr &provider); }