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

namespace Ghost.Ufbx;

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

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

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

    /// <summary>
    /// From: <see cref="Api.ufbx_find_real(ufbx_props*, sbyte*, float)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public float FindReal(sbyte* name, float def)
    {
        return Api.ufbx_find_real(
            (ufbx_props*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            name,
            def);
    }

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

    /// <summary>
    /// From: <see cref="Api.ufbx_find_vec3(ufbx_props*, sbyte*, ufbx_vec3)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_vec3 FindVec3(sbyte* name, ufbx_vec3 def)
    {
        return Api.ufbx_find_vec3(
            (ufbx_props*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            name,
            def);
    }

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

    /// <summary>
    /// From: <see cref="Api.ufbx_find_int(ufbx_props*, sbyte*, long)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public long FindInt(sbyte* name, long def)
    {
        return Api.ufbx_find_int(
            (ufbx_props*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            name,
            def);
    }

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

    /// <summary>
    /// From: <see cref="Api.ufbx_find_bool(ufbx_props*, sbyte*, bool)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public bool FindBool(sbyte* name, bool def)
    {
        return Api.ufbx_find_bool(
            (ufbx_props*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            name,
            def);
    }

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

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

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

    /// <summary>
    /// From: <see cref="Api.ufbx_find_blob(ufbx_props*, sbyte*, ufbx_blob)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_blob FindBlob(sbyte* name, ufbx_blob def)
    {
        return Api.ufbx_find_blob(
            (ufbx_props*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            name,
            def);
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_find_prop_concat(ufbx_props*, ufbx_string*, nuint)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_prop* FindPropConcat(ReadOnlySpan<ufbx_string> parts)
    {
        fixed (ufbx_string* pparts = parts)
        {
            return Api.ufbx_find_prop_concat(
                (ufbx_props*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
                (ufbx_string*)pparts,
                (nuint)parts.Length);
        }
    }
}
