// Copyright (c) 2023 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include "VNEvent.hpp"

namespace Dawn {
  template<class T>
  class VNSetEvent : public VNEvent {
    public:
      T *modifies = nullptr;
      T value;

    protected:
      void onStart() override {
        assertNotNull(this->modifies, "VNSetEvent::onStart() modifies is null!");
        *modifies = value;
        this->next();
      }
  };
}