Iros
 
Loading...
Searching...
No Matches
size_writer.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/types/integers.h"
5namespace di::io {
6class SizeWriter {
7private:
8 template<typename U = void>
9 using Result = vocab::Result<U>;
10
11public:
12 auto written() const { return m_written; }
13
14 constexpr auto write_some(Span<byte const> bytes) -> Result<usize> {
15 m_written += bytes.size();
16 return bytes.size();
17 }
18 constexpr static auto flush() -> Result<> { return {}; }
19
20private:
21 usize m_written { 0 };
22};
23}
24
25namespace di {
26using io::SizeWriter;
27}
Definition size_writer.h:6
constexpr auto write_some(Span< byte const > bytes) -> Result< usize >
Definition size_writer.h:14
auto written() const
Definition size_writer.h:12
static constexpr auto flush() -> Result<>
Definition size_writer.h:18
Definition span_forward_declaration.h:10
Definition reader.h:7
size_t usize
Definition integers.h:33
Expected< T, Error > Result
Definition result.h:8
Definition zstring_parser.h:9