using Ghost.Core; namespace Ghost.Graphics.Data; public readonly struct GPUResource : IHandleType; public readonly struct Texture : IHandleType; public readonly struct GraphicsBuffer : IHandleType; public static class ResourceHandleExtensions { public static Handle AsResource(this Handle texture) { return new Handle(texture.id, texture.generation); } public static Handle AsResource(this Handle buffer) { return new Handle(buffer.id, buffer.generation); } internal static Handle AsTexture(this Handle resource) { return new Handle(resource.id, resource.generation); } internal static Handle AsGraphicsBuffer(this Handle resource) { return new Handle(resource.id, resource.generation); } }