// Structures and methods for implementing watches in the Zeek debugger.

#pragma once

namespace zeek::detail {

class Expr;

// Automatic displays: display these at each stoppage.
class DbgDisplay {
public:
    DbgDisplay(Expr* expr_to_display);

    bool IsEnabled() { return enabled; }
    bool SetEnable(bool do_enable) {
        bool old_value = enabled;
        enabled = do_enable;
        return old_value;
    }

    const Expr* Expression() const { return expression; }

protected:
    bool enabled;
    Expr* expression;
};

} // namespace zeek::detail
