#pragma once

#include <optional>
#include <memory>

class GuessCorrector {
    const char *m_word;
    size_t m_word_length;
    std::shared_ptr<std::optional<char>[]> m_parts_guessed;

public:
    GuessCorrector(const char *word);

    [[nodiscard]] bool has_char(char to_check) const;

    void add(char to_add);

    [[nodiscard]] bool is_filled_out() const;

    [[nodiscard]] std::weak_ptr<std::optional<char>[]> guessed() const;
};
