#pragma once
#include "result_common.hpp"

DEFINE_HORIZON_RESULT_MODULE(Result::FS, FS);

namespace Result::FS {
    // TODO: Verify this
    DEFINE_HORIZON_RESULT(FileNotFound, 100, NotFound, Status);
    // TODO: Verify this
    DEFINE_HORIZON_RESULT(FileNotFoundAlt, 112, NotFound, Status);
    // Also a not found error code used here and there in the FS module.
    DEFINE_HORIZON_RESULT(NotFoundInvalid, 120, InvalidState, Status);
    DEFINE_HORIZON_RESULT(AlreadyExists, 190, NothingHappened, Info);
    DEFINE_HORIZON_RESULT(FileTooLarge, 210, OutOfResource, Info);
    // Trying to access an archive that needs formatting and has not been formatted
    DEFINE_HORIZON_RESULT(NotFormatted, 340, InvalidState, Status);
    DEFINE_HORIZON_RESULT(UnexpectedFileOrDir, 770, NotSupported, Usage);
};