using System;
using CeresSharp.Native;
using CeresSharp.Native.SafeHandles;
namespace CeresSharp.Advanced;
///
/// Context for performance optimization.
/// Allows reuse of expensive objects across multiple solves.
///
public sealed class Context : IDisposable
{
private readonly ContextHandle _handle;
private bool _disposed;
///
/// Creates a new Context instance.
///
public Context()
{
_handle = ContextHandle.Create();
}
///
/// Gets the native handle.
///
internal ContextHandle Handle => _handle;
public void Dispose()
{
if (!_disposed)
{
_handle?.Dispose();
_disposed = true;
}
}
}