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}'!");
}
}