using System; using System.Runtime.InteropServices; namespace LLama.Native { /// /// Base class for all llama handles to native resources /// public abstract class SafeLLamaHandleBase : SafeHandle { private protected SafeLLamaHandleBase() : base(IntPtr.Zero, ownsHandle: true) { } private protected SafeLLamaHandleBase(IntPtr handle) : base(IntPtr.Zero, ownsHandle: true) { SetHandle(handle); } private protected SafeLLamaHandleBase(IntPtr handle, bool ownsHandle) : base(IntPtr.Zero, ownsHandle) { SetHandle(handle); } /// public override bool IsInvalid => handle == IntPtr.Zero; /// public override string ToString() => $"0x{handle.ToString("x16")}"; } }