#pragma once
// Minimal FS.h stub for native unit tests
// Provides the fs::File type that Arduino's FS library normally defines.

#include "Arduino.h"
#include <string>
#include <cstdint>

namespace fs {

struct File {
    std::string* _buf = nullptr;
    bool _valid = false;
    bool _write = false;
    size_t _pos = 0;

    explicit operator bool() const { return _valid; }
    void close() { _valid = false; }
    size_t write(const uint8_t* data, size_t len) {
        if (_buf && _write) { _buf->append((const char*)data, len); return len; }
        return 0;
    }
    int read() {
        if (_buf && _pos < _buf->size()) return (uint8_t)(*_buf)[_pos++];
        return -1;
    }
    size_t size() { return _buf ? _buf->size() : 0; }
};

} // namespace fs
