using System;
namespace LanLib.EventManager
{
public interface ISubscribableEventManager
{
///
/// Subscribes a listener to an event, identified and parameterized by the struct type T.
///
/// The action to be invoked when the event is triggered.
/// The struct type that both identifies the event and serves as the parameter for the listener.
public void Subscribe(Action listener) where T : struct;
///
/// Unsubscribes a listener from an event, identified and parameterized by the struct type T.
///
/// The action to be removed from the event's invocation list.
/// The struct type that both identifies the event and serves as the parameter for the listener.
public void Unsubscribe(Action listener) where T : struct;
}
}