<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Cryville.Common.Buffers</name>
    </assembly>
    <members>
        <member name="T:Cryville.Common.Buffers.ArrayPool`1">
            <summary>
            A resource pool that allows reusing instances of arrays of type <typeparamref name="T" />.
            </summary>
            <typeparam name="T">The item type of the arrays in the pool.</typeparam>
        </member>
        <member name="M:Cryville.Common.Buffers.ArrayPool`1.#ctor">
            <summary>
            Creates an instance of the <see cref="T:Cryville.Common.Buffers.ArrayPool`1" /> class with the default maximum list size and bucket capacity.
            </summary>
        </member>
        <member name="M:Cryville.Common.Buffers.ArrayPool`1.#ctor(System.Int32,System.Int32)">
            <summary>
            Creates an instance of the <see cref="T:Cryville.Common.Buffers.ArrayPool`1" /> class.
            </summary>
            <param name="maxSize">The maximum size of the arrays in the pool.</param>
            <param name="capacityPerBucket">The capacity of each bucket. The pool groups arrays of similar sizes into buckets for faster access.</param>
        </member>
        <member name="M:Cryville.Common.Buffers.ArrayPool`1.Rent(System.Int32)">
            <summary>
            Rents an array that is at least the specified size from the pool.
            </summary>
            <param name="size">The minimum size of the array.</param>
            <returns>An array of type <typeparamref name="T" /> that is at least the specified size.</returns>
        </member>
        <member name="M:Cryville.Common.Buffers.ArrayPool`1.Return(`0[])">
            <summary>
            Returns a rented array to the pool.
            </summary>
            <param name="arr">The array to return.</param>
        </member>
        <member name="T:Cryville.Common.Buffers.CategorizedPool`2">
            <summary>
            A set of resource pools categorized by a category type.
            </summary>
            <typeparam name="TCategory">The category type.</typeparam>
            <typeparam name="TObject">The type of the objects in the pool.</typeparam>
        </member>
        <member name="P:Cryville.Common.Buffers.CategorizedPool`2.Buckets">
            <summary>
            The set of underlying pools.
            </summary>
            <remarks>
            <para>The <see cref="M:Cryville.Common.Buffers.CategorizedPool`2.Rent(`0)" /> and <see cref="M:Cryville.Common.Buffers.CategorizedPool`2.Return(`0,`1)" /> method select an underlying pool directly from this set with the category as the key. When overridden, this set must be available since construction.</para>
            </remarks>
        </member>
        <member name="P:Cryville.Common.Buffers.CategorizedPool`2.RentedCount">
            <summary>
            The count of objects rented from the set of pools.
            </summary>
        </member>
        <member name="M:Cryville.Common.Buffers.CategorizedPool`2.Rent(`0)">
            <summary>
            Rents an object from the pool.
            </summary>
            <param name="category">The category.</param>
            <returns>The rented object.</returns>
        </member>
        <member name="M:Cryville.Common.Buffers.CategorizedPool`2.Return(`0,`1)">
            <summary>
            Returns a rented object to the pool.
            </summary>
            <param name="category">The category.</param>
            <param name="obj">The object to return.</param>
        </member>
        <member name="T:Cryville.Common.Buffers.CategorizedPoolAccessor`2">
            <summary>
            A utility to access a categorized pool, representing a single unit that uses a shared categorized pool.
            </summary>
            <typeparam name="TCategory">The category type.</typeparam>
            <typeparam name="TObject">The type of the objects in the pool.</typeparam>
        </member>
        <member name="M:Cryville.Common.Buffers.CategorizedPoolAccessor`2.#ctor(Cryville.Common.Buffers.CategorizedPool{`0,`1})">
            <summary>
            Creates an instance of the <see cref="T:Cryville.Common.Buffers.CategorizedPoolAccessor`2" /> class.
            </summary>
            <param name="pool">The categorized pool.</param>
        </member>
        <member name="M:Cryville.Common.Buffers.CategorizedPoolAccessor`2.Rent(`0)">
            <summary>
            Rents an object from the pool.
            </summary>
            <param name="category">The category.</param>
            <returns>The rented object.</returns>
        </member>
        <member name="M:Cryville.Common.Buffers.CategorizedPoolAccessor`2.Return(`1)">
            <summary>
            Returns a rented object to the pool.
            </summary>
            <param name="obj">The object to return.</param>
        </member>
        <member name="M:Cryville.Common.Buffers.CategorizedPoolAccessor`2.ReturnAll">
            <summary>
            Returns all objects rented by this accessor to the pool.
            </summary>
        </member>
        <member name="T:Cryville.Common.Buffers.ListPool`1">
            <summary>
            A resource pool that allows reusing instances of lists of type <typeparamref name="T" />.
            </summary>
            <typeparam name="T">The item type of the lists in the pool.</typeparam>
        </member>
        <member name="M:Cryville.Common.Buffers.ListPool`1.#ctor">
            <summary>
            Creates an instance of the <see cref="T:Cryville.Common.Buffers.ListPool`1" /> class with the default maximum list size and bucket capacity.
            </summary>
        </member>
        <member name="M:Cryville.Common.Buffers.ListPool`1.#ctor(System.Int32,System.Int32)">
            <summary>
            Creates an instance of the <see cref="T:Cryville.Common.Buffers.ListPool`1" /> class.
            </summary>
            <param name="maxSize">The maximum size of the lists in the pool.</param>
            <param name="capacityPerBucket">The capacity of each bucket. The pool groups lists of similar sizes into buckets for faster access.</param>
        </member>
        <member name="M:Cryville.Common.Buffers.ListPool`1.Rent(System.Int32)">
            <summary>
            Rents a list of the specified size from the pool. The size of the list must not be changed when it is rented.
            </summary>
            <param name="size">The size of the list.</param>
            <returns>A <see cref="T:System.Collections.Generic.List`1" /> of the specified size.</returns>
        </member>
        <member name="M:Cryville.Common.Buffers.ListPool`1.Return(System.Collections.Generic.List{`0})">
            <summary>
            Returns a rented list to the pool.
            </summary>
            <param name="list">The list to return.</param>
        </member>
        <member name="T:Cryville.Common.Buffers.ObjectPool`1">
            <summary>
            A resource pool that allows reusing instances of type <typeparamref name="T" />.
            </summary>
            <typeparam name="T">The type of the objects in the pool.</typeparam>
        </member>
        <member name="M:Cryville.Common.Buffers.ObjectPool`1.#ctor(System.Int32)">
            <summary>
            Creates an instance of the <see cref="T:Cryville.Common.Buffers.ObjectPool`1" /> class.
            </summary>
            <param name="capacity">The capacity of the pool.</param>
        </member>
        <member name="P:Cryville.Common.Buffers.ObjectPool`1.RentedCount">
            <summary>
            The count of objects rented from the pool.
            </summary>
        </member>
        <member name="M:Cryville.Common.Buffers.ObjectPool`1.Rent">
            <summary>
            Rents a object from the pool.
            </summary>
            <returns>The rented object.</returns>
        </member>
        <member name="M:Cryville.Common.Buffers.ObjectPool`1.Return(`0)">
            <summary>
            Returns a rented object to the pool.
            </summary>
            <param name="obj">The object to return.</param>
        </member>
        <member name="M:Cryville.Common.Buffers.ObjectPool`1.Construct">
            <summary>
            Constructs a new instance of type <typeparamref name="T" />.
            </summary>
            <returns>The new instance.</returns>
        </member>
        <member name="M:Cryville.Common.Buffers.ObjectPool`1.Reset(`0)">
            <summary>
            Resets an object.
            </summary>
            <param name="obj">The object.</param>
        </member>
        <member name="T:Cryville.Common.Buffers.SimpleObjectPool`1">
            <summary>
            A resource pool that allows reusing instances of type <typeparamref name="T" />, which has a parameterless constructor.
            </summary>
            <typeparam name="T">The type of the objects in the pool.</typeparam>
        </member>
        <member name="M:Cryville.Common.Buffers.SimpleObjectPool`1.#ctor(System.Int32)">
            <summary>
            Creates an instance of the <see cref="T:Cryville.Common.Buffers.SimpleObjectPool`1" /> class.
            </summary>
            <param name="capacity">The capacity of the pool.</param>
        </member>
        <member name="M:Cryville.Common.Buffers.SimpleObjectPool`1.Construct">
            <inheritdoc />
        </member>
        <member name="T:Cryville.Common.Buffers.TargetString">
            <summary>
            An auto-resized <see cref="T:System.Char" /> array as a variable-length string used as a target that is modified frequently.
            </summary>
        </member>
        <member name="E:Cryville.Common.Buffers.TargetString.OnUpdate">
            <summary>
            Occurs when <see cref="M:Cryville.Common.Buffers.TargetString.Validate" /> is called if the string is invalidated.
            </summary>
        </member>
        <member name="M:Cryville.Common.Buffers.TargetString.#ctor">
            <summary>
            Creates an instance of the <see cref="T:Cryville.Common.Buffers.TargetString" /> class with a capacity of 16.
            </summary>
        </member>
        <member name="M:Cryville.Common.Buffers.TargetString.#ctor(System.Int32)">
            <summary>
            Creates an instance of the <see cref="T:Cryville.Common.Buffers.TargetString" /> class.
            </summary>
            <param name="capacity">The initial capacity of the string.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacity" /> is less than or equal to 0.</exception>
        </member>
        <member name="P:Cryville.Common.Buffers.TargetString.Item(System.Int32)">
            <summary>
            Gets or sets one of the characters in the string.
            </summary>
            <param name="index">The zero-based index of the character.</param>
            <returns>The character at the given index.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is less than 0 or not less than <see cref="P:Cryville.Common.Buffers.TargetString.Length" />.</exception>
            <remarks>
            <para>Set <see cref="P:Cryville.Common.Buffers.TargetString.Length" /> to a desired value before updating the characters.</para>
            <para>Call <see cref="M:Cryville.Common.Buffers.TargetString.Validate" /> after all the characters are updated.</para>
            <para>Changing any character invalidates the string.</para>
            </remarks>
        </member>
        <member name="P:Cryville.Common.Buffers.TargetString.Length">
            <summary>
            The length of the string.
            </summary>
            <exception cref="T:System.ArgumentOutOfRangeException">The value specified for a set operation is less than 0.</exception>
            <remarks>
            <para>Changing the length of the string invalidates the string.</para>
            </remarks>
        </member>
        <member name="M:Cryville.Common.Buffers.TargetString.Validate">
            <summary>
            Validates the string.
            </summary>
        </member>
        <member name="M:Cryville.Common.Buffers.TargetString.ToString">
            <summary>
            Returns the string the current <see cref="T:Cryville.Common.Buffers.TargetString" /> represents.
            </summary>
            <returns>The string the current <see cref="T:Cryville.Common.Buffers.TargetString" /> represents.</returns>
        </member>
        <member name="M:Cryville.Common.Buffers.TargetString.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the <see cref="T:Cryville.Common.Buffers.TargetString" />.
            </summary>
            <returns>A <see cref="T:Cryville.Common.Buffers.TargetString.Enumerator" /> for the <see cref="T:Cryville.Common.Buffers.TargetString" />.</returns>
        </member>
        <member name="T:Cryville.Common.Buffers.TargetString.Enumerator">
            <inheritdoc />
        </member>
        <member name="P:Cryville.Common.Buffers.TargetString.Enumerator.Current">
            <inheritdoc />
        </member>
        <member name="M:Cryville.Common.Buffers.TargetString.Enumerator.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Cryville.Common.Buffers.TargetString.Enumerator.MoveNext">
            <inheritdoc />
        </member>
        <member name="M:Cryville.Common.Buffers.TargetString.Enumerator.Reset">
            <inheritdoc />
        </member>
    </members>
</doc>
