| File: System\Collections\Immutable\IImmutableStack.cs | Web Access |
| Project: src\runtime\src\libraries\System.Collections.Immutable\src\System.Collections.Immutable.csproj (System.Collections.Immutable) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; using System.Runtime.CompilerServices; namespace System.Collections.Immutable { /// <summary> /// An immutable stack. /// </summary> /// <typeparam name="T">The type of elements stored in the stack.</typeparam> [CollectionBuilder(typeof(ImmutableStack), nameof(ImmutableStack.Create))] public interface IImmutableStack<T> : IEnumerable<T> { /// <summary> /// Gets a value indicating whether this is the empty stack. /// </summary> /// <value> /// <c>true</c> if this stack is empty; otherwise, <c>false</c>. /// </value> bool IsEmpty { get; } /// <summary> /// Gets an empty stack. /// </summary> IImmutableStack<T> Clear(); /// <summary> /// Pushes an element onto a stack and returns the new stack. /// </summary> /// <param name="value">The element to push onto the stack.</param> /// <returns>The new stack.</returns> IImmutableStack<T> Push(T value); /// <summary> /// Pops the top element off the stack. /// </summary> /// <returns>The new stack; never <c>null</c></returns> /// <exception cref="InvalidOperationException">Thrown when the stack is empty.</exception> IImmutableStack<T> Pop(); /// <summary> /// Gets the element on the top of the stack. /// </summary> /// <exception cref="InvalidOperationException">Thrown when the stack is empty.</exception> T Peek(); } }