#pragma once

#include <filesystem>
#include <optional>
#include <string>
#include <vector>

#include <fesa/core/diagnostic.hpp>
#include <fesa/io/abaqus/deck_record.hpp>

namespace fesa {

struct ParseDeckResult final {
    std::optional<ParsedDeck> deck;
    std::vector<Diagnostic> diagnostics;
    std::string input_fingerprint;
};

[[nodiscard]] ParseDeckResult parse_deck(
    const std::filesystem::path& path);

}  // namespace fesa
