// <auto-generated>
// This file is generated by Ghost.NativeWrapperGen. Do not edit manually.
// </auto-generated>

namespace Ghost.Ufbx;

public unsafe partial struct ufbx_shader
{
    /// <summary>
    /// From: <see cref="Api.ufbx_find_shader_prop_len(ufbx_shader*, sbyte*, nuint)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_string FindPropLen(ReadOnlySpan<byte> name)
    {
        fixed (byte* pname = name)
        {
            return Api.ufbx_find_shader_prop_len(
                (ufbx_shader*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
                (sbyte*)pname,
                (nuint)name.Length);
        }
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_find_shader_prop(ufbx_shader*, sbyte*)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_string FindProp(sbyte* name)
    {
        return Api.ufbx_find_shader_prop(
            (ufbx_shader*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            name);
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_find_shader_prop_bindings_len(ufbx_shader*, sbyte*, nuint)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_shader_prop_binding_list FindPropBindingsLen(ReadOnlySpan<byte> name)
    {
        fixed (byte* pname = name)
        {
            return Api.ufbx_find_shader_prop_bindings_len(
                (ufbx_shader*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
                (sbyte*)pname,
                (nuint)name.Length);
        }
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_find_shader_prop_bindings(ufbx_shader*, sbyte*)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_shader_prop_binding_list FindPropBindings(sbyte* name)
    {
        return Api.ufbx_find_shader_prop_bindings(
            (ufbx_shader*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            name);
    }
}
