17 return static_cast<FileWriteOptions>(
static_cast<uint32_t
>(a) |
static_cast<uint32_t
>(b));
22 return static_cast<FileWriteOptions>(
static_cast<uint32_t
>(a) &
static_cast<uint32_t
>(b));
39 [[nodiscard]]
virtual bool can_write(
const std::string& filepath)
const = 0;
47 virtual bool open(
const std::string& filepath,
59 [[nodiscard]]
virtual bool is_open()
const = 0;
virtual void close()=0
Close the currently open file.
virtual bool write_bytes(const void *data, size_t size)=0
Write raw bytes.
virtual std::string get_last_error() const =0
Get last error message.
virtual bool open(const std::string &filepath, FileWriteOptions options=FileWriteOptions::CREATE|FileWriteOptions::TRUNCATE)=0
Open a file for writing.
virtual size_t get_write_position() const =0
Get current write position (bytes written)
virtual bool can_write(const std::string &filepath) const =0
Check if this writer can handle the given file path.
virtual ~FileWriter()=default
virtual bool write_string(std::string_view str)=0
Write a string.
virtual bool write_line(std::string_view line)=0
Write a line (appends newline)
virtual bool is_open() const =0
Check if a file is currently open for writing.
virtual bool flush()=0
Flush buffered writes to disk.
Abstract base class for file writing operations.
@ TRUNCATE
Truncate existing file.
@ BUFFER
Use internal buffering.
@ SYNC
Sync after each write (slow but safe)
@ CREATE
Create if doesn't exist.
@ APPEND
Append to existing file.
@ ALL
All options enabled.
@ NONE
No special options.
FileReadOptions operator&(FileReadOptions a, FileReadOptions b)
FileReadOptions operator|(FileReadOptions a, FileReadOptions b)