class DataChunkInputStream extends InputStream {

    @Override
    public int read() throws IOException {
        if (oneByte == null) {
            oneByte = new byte[1];
        }
        // Assert: Chunks are always non-empty, so r is either 1 or negative (EOF)
        int r = read(oneByte, 0, 1);
        if (r < 0) {
            return r;
        }

        return oneByte[0] & 0xFF;
    }

    public  DataChunkInputStream(Flow.Publisher<DataChunk> originalPublisher);
    public  DataChunkInputStream(Flow.Publisher<DataChunk> originalPublisher, boolean validate);

}