File: System.Runtime.CompilerServices.CollectionBuilderAttribute.g.cs
Project: src\src\System.Private.Windows.Core\src\Microsoft.Private.Windows.Core.csproj (Microsoft.Private.Windows.Core)
// <auto-generated/>
#pragma warning disable
#nullable enable annotations
 
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
namespace System.Runtime.CompilerServices
{
    [global::System.AttributeUsage(
        global::System.AttributeTargets.Class |
        global::System.AttributeTargets.Struct |
        global::System.AttributeTargets.Interface,
        Inherited = false)]
    [global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
    internal sealed class CollectionBuilderAttribute : Attribute
    {
        /// <summary>
        /// Initialize the attribute to refer to the <paramref name="methodName"/> method on the <paramref name="builderType"/> type.
        /// </summary>
        /// <param name="builderType">The type of the builder to use to construct the collection.</param>
        /// <param name="methodName">The name of the method on the builder to use to construct the collection.</param>
        /// <remarks>
        /// <paramref name="methodName"/> must refer to a static method that accepts a single parameter of
        /// type <see cref="ReadOnlySpan{T}"/> and returns an instance of the collection being built containing
        /// a copy of the data from that span.  In future releases of .NET, additional patterns may be supported.
        /// </remarks>
        public CollectionBuilderAttribute(Type builderType, string methodName)
        {
            BuilderType = builderType;
            MethodName = methodName;
        }
 
        /// <summary>
        /// Gets the type of the builder to use to construct the collection.
        /// </summary>
        public Type BuilderType { get; }
 
        /// <summary>
        /// Gets the name of the method on the builder to use to construct the collection.
        /// </summary>
        /// <remarks>
        /// This should match the metadata name of the target method.
        /// For example, this might be ".ctor" if targeting the type's constructor.
        /// </remarks>
        public string MethodName { get; }
    }
}