using System; namespace Barotrauma.LuaCs.Services; /// /// Defines a service that can be reset to it's post-constructor state and reused without needing to be disposed. /// Intended for persistent services. /// public interface IReusableService : IService { /// /// Returns the service to its original state (post-instantiation). /// Allows a service instance to be reused without disposing of the instance. /// FluentResults.Result Reset(); } /// /// Base interface inherited by all services. /// public interface IService : IDisposable { bool IsDisposed { get; } public void CheckDisposed() { if (IsDisposed) throw new ObjectDisposedException($"Tried to call method on disposed object '{this.GetType().Name}'!"); } }