<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Swan.Lite</name>
    </assembly>
    <members>
        <member name="T:Swan.Collections.CollectionCacheRepository`1">
            <summary>
            A thread-safe collection cache repository for types.
            </summary>
            <typeparam name="TValue">The type of member to cache.</typeparam>
        </member>
        <member name="M:Swan.Collections.CollectionCacheRepository`1.ContainsKey(System.Type)">
            <summary>
            Determines whether the cache contains the specified key.
            </summary>
            <param name="key">The key.</param>
            <returns><c>true</c> if the cache contains the key, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Swan.Collections.CollectionCacheRepository`1.Retrieve(System.Type,System.Func{System.Type,System.Collections.Generic.IEnumerable{`0}})">
            <summary>
            Retrieves the properties stored for the specified type.
            If the properties are not available, it calls the factory method to retrieve them
            and returns them as an array of PropertyInfo.
            </summary>
            <param name="key">The key.</param>
            <param name="factory">The factory.</param>
            <returns>
            An array of the properties stored for the specified type.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            key
            or
            factory.
            </exception>
        </member>
        <member name="T:Swan.CompositeHashCode">
             <summary>
             <para>Provides a way for types that override <see cref="M:System.Object.GetHashCode"/>
             to correctly generate a hash code from the actual status of an instance.</para>
             <para><c>CompositeHashCode</c> must be used ONLY as a helper when implementing
             <see cref="T:System.IEquatable`1">IEquatable&lt;T&gt;</see> in a STANDARD way, i.e. when:</para>
             <list type="bullet">
                 <item><description>two instances having the same hash code are actually
                 interchangeable, i.e. they represent exactly the same object (for instance,
                 they should not coexist in a
                 <see cref="T:System.Collections.Generic.SortedSet`1">SortedSet</see>);</description></item>
                 <item><description><see cref="M:System.Object.GetHashCode">GetHashCode</see> and
                 <see cref="M:System.Object.Equals(System.Object)">Equals</see> are BOTH overridden, and the <c>Equals</c>
                 override either calls to the <see cref="M:System.IEquatable`1.Equals(`0)">IEquatable&lt;T&gt;.Equals</see>
                 (recommended) or performs exactly the same equality checks;</description></item>
                 <item><description>only "standard" equality checks are performed, i.e. by means of the
                 <c>==</c> operator, <see cref="T:System.IEquatable`1">IEquatable&lt;T&gt;</see> interfaces, and
                 the <see cref="M:System.Object.Equals(System.Object)">Equals</see> method (for instance, this excludes case-insensitive
                 and/or culture-dependent string comparisons);
                 </description></item>
                 <item><description>the hash code is constructed (via <c>Using</c> calls) from the very same
                 fields and / or properties that are checked for equality.</description></item>
             </list>
             <para>For hashing to work correctly, all fields and/or properties involved in hashing must either
             be immutable, or at least not change while an object is referenced in a hashtable.
             This does not refer just to <c>System.Collections.Hashtable</c>; the .NET
             Framework makes a fairly extensive use of hashing, for example in
             <see cref="T:System.Collections.Generic.SortedSet`1">SortedSet&lt;T&gt;</see>
             and in various parts of LINQ. As a thumb rule, an object must stay the same during the execution of a
             LINQ query on an <see cref="T:System.Collections.Generic.IEnumerable`1">IEnumerable</see>
             in which it is contained, as well as all the time it is referenced in a <c>Hashtable</c> or <c>SortedSet</c>.</para>
             </summary>
             <example>
             <para>The following code constitutes a minimal use case for <c>CompositeHashCode</c>, as well
             as a reference for standard <see cref="T:System.IEquatable`1">IEquatable&lt;T&gt;</see> implementation.</para>
             <para>Notice that all relevant properties are immutable; this is not, as stated in the summary,
             an absolute requirement, but it surely helps and should be done every time it makes sense.</para>
             <code>using System;
             using Swan;
            
             namespace Example
             {
                 public class Person : IEquatable&lt;Person&gt;
                 {
                     public string Name { get; private set; }
            
                     public int Age { get; private set; }
            
                     public Person(string name, int age)
                     {
                         Name = name;
                         Age = age;
                     }
            
                     public override int GetHashCode() => CompositeHashCode.Using(Name, Age);
            
                     public override bool Equals(object obj) => obj is Person other &amp;&amp; Equals(other);
            
                     public bool Equals(Person other)
                         => other != null
                         &amp;&amp; other.Name == Name
                         &amp;&amp; other.Age == Age;
                 }
             }</code>
             </example>
        </member>
        <member name="M:Swan.CompositeHashCode.Using(System.Object[])">
            <summary>
            Computes a hash code, taking into consideration the values of the specified
            fields and/oror properties as part of an object's state. See the
            <see cref="T:Swan.CompositeHashCode">example</see>.
            </summary>
            <param name="fields">The values of the fields and/or properties.</param>
            <returns>The computed has code.</returns>
        </member>
        <member name="T:Swan.Configuration.ConfiguredObject">
            <summary>
            Base class for objects whose configuration may be locked,
            thus becoming read-only, at a certain moment in their lifetime.
            </summary>
        </member>
        <member name="P:Swan.Configuration.ConfiguredObject.ConfigurationLocked">
            <summary>
            Gets a value indicating whether s configuration has already been locked
            and has therefore become read-only.
            </summary>
            <value>
            <see langword="true"/> if the configuration is locked; otherwise, <see langword="false"/>.
            </value>
            <seealso cref="M:Swan.Configuration.ConfiguredObject.EnsureConfigurationNotLocked"/>
        </member>
        <member name="M:Swan.Configuration.ConfiguredObject.LockConfiguration">
            <summary>
            <para>Locks this instance's configuration, preventing further modifications.</para>
            </summary>
            <remarks>
            <para>Configuration locking must be enforced by derived classes
            by calling <see cref="M:Swan.Configuration.ConfiguredObject.EnsureConfigurationNotLocked"/> at the start
            of methods and property setters that could change the object's
            configuration.</para>
            <para>Immediately before locking the configuration, this method calls <see cref="M:Swan.Configuration.ConfiguredObject.OnBeforeLockConfiguration"/>
            as a last chance to validate configuration data, and to lock the configuration of contained objects.</para>
            </remarks>
            <seealso cref="M:Swan.Configuration.ConfiguredObject.OnBeforeLockConfiguration"/>
        </member>
        <member name="M:Swan.Configuration.ConfiguredObject.OnBeforeLockConfiguration">
            <summary>
            Called immediately before locking the configuration.
            </summary>
            <seealso cref="M:Swan.Configuration.ConfiguredObject.LockConfiguration"/>
        </member>
        <member name="M:Swan.Configuration.ConfiguredObject.EnsureConfigurationNotLocked">
            <summary>
            Checks whether a module's configuration has become read-only
            and, if so, throws an <see cref="T:System.InvalidOperationException"/>.
            </summary>
            <exception cref="T:System.InvalidOperationException">The configuration is locked.</exception>
            <seealso cref="P:Swan.Configuration.ConfiguredObject.ConfigurationLocked"/>
        </member>
        <member name="T:Swan.Configuration.SettingsProvider`1">
            <summary>
            Represents a provider to save and load settings using a plain JSON file.
            </summary>
            <example>
            The following example shows how to save and load settings.
            <code>
            using Swan.Configuration;
            
            public class Example
            { 
                public static void Main()
                {
                    // get user from settings
                    var user = SettingsProvider&lt;Settings&gt;.Instance.Global.User;
                        
                    // modify the port
                    SettingsProvider&lt;Settings&gt;.Instance.Global.Port = 20;
                        
                    // if we want these settings to persist
                    SettingsProvider&lt;Settings&gt;.Instance.PersistGlobalSettings();
                }
                    
                public class Settings
                {
                    public int Port { get; set; } = 9696;
                    
                    public string User { get; set; } = "User";
                }
            }
            </code>
            </example>
            <typeparam name="T">The type of settings model.</typeparam>
        </member>
        <member name="P:Swan.Configuration.SettingsProvider`1.ConfigurationFilePath">
            <summary>
            Gets or sets the configuration file path. By default the entry assembly directory is used
            and the filename is 'appsettings.json'.
            </summary>
            <value>
            The configuration file path.
            </value>
        </member>
        <member name="P:Swan.Configuration.SettingsProvider`1.Global">
            <summary>
            Gets the global settings object.
            </summary>
            <value>
            The global settings object.
            </value>
        </member>
        <member name="M:Swan.Configuration.SettingsProvider`1.ReloadGlobalSettings">
            <summary>
            Reloads the global settings.
            </summary>
        </member>
        <member name="M:Swan.Configuration.SettingsProvider`1.PersistGlobalSettings">
            <summary>
            Persists the global settings.
            </summary>
        </member>
        <member name="M:Swan.Configuration.SettingsProvider`1.ResetGlobalSettings">
            <summary>
            Resets the global settings.
            </summary>
        </member>
        <member name="T:Swan.Cryptography.Hasher">
            <summary>
            Use this class to compute a hash in MD4, SHA1, SHA256 or SHA512.
            </summary>
        </member>
        <member name="M:Swan.Cryptography.Hasher.ComputeMD5(System.IO.Stream,System.Boolean)">
            <summary>
            Computes the MD5 hash of the given stream.
            Do not use for large streams as this reads ALL bytes at once.
            </summary>
            <param name="this">The stream.</param>
            <param name="createHasher">if set to <c>true</c> [create hasher].</param>
            <returns>
            The computed hash code.
            </returns>
            <exception cref="T:System.ArgumentNullException">stream.</exception>
        </member>
        <member name="M:Swan.Cryptography.Hasher.ComputeMD5(System.String,System.Boolean)">
            <summary>
            Computes the MD5 hash of the given string using UTF8 byte encoding.
            </summary>
            <param name="value">The input string.</param>
            <param name="createHasher">if set to <c>true</c> [create hasher].</param>
            <returns>The computed hash code.</returns>
        </member>
        <member name="M:Swan.Cryptography.Hasher.ComputeMD5(System.Byte[],System.Boolean)">
            <summary>
            Computes the MD5 hash of the given byte array.
            </summary>
            <param name="data">The data.</param>
            <param name="createHasher">if set to <c>true</c> [create hasher].</param>
            <returns>The computed hash code.</returns>
        </member>
        <member name="M:Swan.Cryptography.Hasher.ComputeSha1(System.String,System.Boolean)">
            <summary>
            Computes the SHA-1 hash of the given string using UTF8 byte encoding.
            </summary>
            <param name="this">The input string.</param>
            <param name="createHasher">if set to <c>true</c> [create hasher].</param>
            <returns>
            The computes a Hash-based Message Authentication Code (HMAC) 
            using the SHA1 hash function.
            </returns>
        </member>
        <member name="M:Swan.Cryptography.Hasher.ComputeSha256(System.String,System.Boolean)">
            <summary>
            Computes the SHA-256 hash of the given string using UTF8 byte encoding.
            </summary>
            <param name="value">The input string.</param>
            <param name="createHasher">if set to <c>true</c> [create hasher].</param>
            <returns>
            The computes a Hash-based Message Authentication Code (HMAC) 
            by using the SHA256 hash function.
            </returns>
        </member>
        <member name="M:Swan.Cryptography.Hasher.ComputeSha512(System.String,System.Boolean)">
            <summary>
            Computes the SHA-512 hash of the given string using UTF8 byte encoding.
            </summary>
            <param name="value">The input string.</param>
            <param name="createHasher">if set to <c>true</c> [create hasher].</param>
            <returns>
            The computes a Hash-based Message Authentication Code (HMAC) 
            using the SHA512 hash function.
            </returns>
        </member>
        <member name="T:Swan.DateTimeSpan">
            <summary>
            Represents a struct of DateTimeSpan to compare dates and get in 
            separate fields the amount of time between those dates.
            
            Based on https://stackoverflow.com/a/9216404/1096693.
            </summary>
        </member>
        <member name="M:Swan.DateTimeSpan.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.DateTimeSpan"/> struct.
            </summary>
            <param name="years">The years.</param>
            <param name="months">The months.</param>
            <param name="days">The days.</param>
            <param name="hours">The hours.</param>
            <param name="minutes">The minutes.</param>
            <param name="seconds">The seconds.</param>
            <param name="milliseconds">The milliseconds.</param>
        </member>
        <member name="P:Swan.DateTimeSpan.Years">
            <summary>
            Gets the years.
            </summary>
            <value>
            The years.
            </value>
        </member>
        <member name="P:Swan.DateTimeSpan.Months">
            <summary>
            Gets the months.
            </summary>
            <value>
            The months.
            </value>
        </member>
        <member name="P:Swan.DateTimeSpan.Days">
            <summary>
            Gets the days.
            </summary>
            <value>
            The days.
            </value>
        </member>
        <member name="P:Swan.DateTimeSpan.Hours">
            <summary>
            Gets the hours.
            </summary>
            <value>
            The hours.
            </value>
        </member>
        <member name="P:Swan.DateTimeSpan.Minutes">
            <summary>
            Gets the minutes.
            </summary>
            <value>
            The minutes.
            </value>
        </member>
        <member name="P:Swan.DateTimeSpan.Seconds">
            <summary>
            Gets the seconds.
            </summary>
            <value>
            The seconds.
            </value>
        </member>
        <member name="P:Swan.DateTimeSpan.Milliseconds">
            <summary>
            Gets the milliseconds.
            </summary>
            <value>
            The milliseconds.
            </value>
        </member>
        <member name="T:Swan.Definitions">
            <summary>
            Contains useful constants and definitions.
            </summary>
            <summary>
            Contains useful constants and definitions.
            </summary>
        </member>
        <member name="F:Swan.Definitions.Windows1252Encoding">
            <summary>
            The MS Windows codepage 1252 encoding used in some legacy scenarios
            such as default CSV text encoding from Excel.
            </summary>
        </member>
        <member name="F:Swan.Definitions.CurrentAnsiEncoding">
            <summary>
            The encoding associated with the default ANSI code page in the operating 
            system's regional and language settings.
            </summary>
        </member>
        <member name="M:Swan.Definitions.#cctor">
            <summary>
            Initializes the <see cref="T:Swan.Definitions"/> class.
            </summary>
        </member>
        <member name="F:Swan.Definitions.BasicTypesInfo">
            <summary>
            The basic types information.
            </summary>
        </member>
        <member name="P:Swan.Definitions.AllBasicTypes">
            <summary>
            Contains all basic types, including string, date time, and all of their nullable counterparts.
            </summary>
            <value>
            All basic types.
            </value>
        </member>
        <member name="P:Swan.Definitions.AllNumericTypes">
            <summary>
            Gets all numeric types including their nullable counterparts.
            Note that Booleans and Guids are not considered numeric types.
            </summary>
            <value>
            All numeric types.
            </value>
        </member>
        <member name="P:Swan.Definitions.AllNumericValueTypes">
            <summary>
            Gets all numeric types without their nullable counterparts.
            Note that Booleans and Guids are not considered numeric types.
            </summary>
            <value>
            All numeric value types.
            </value>
        </member>
        <member name="P:Swan.Definitions.AllBasicValueTypes">
            <summary>
            Contains all basic value types. i.e. excludes string and nullables.
            </summary>
            <value>
            All basic value types.
            </value>
        </member>
        <member name="P:Swan.Definitions.AllBasicValueAndStringTypes">
            <summary>
            Contains all basic value types including the string type. i.e. excludes nullables.
            </summary>
            <value>
            All basic value and string types.
            </value>
        </member>
        <member name="P:Swan.Definitions.AllBasicNullableValueTypes">
            <summary>
            Gets all nullable value types. i.e. excludes string and all basic value types.
            </summary>
            <value>
            All basic nullable value types.
            </value>
        </member>
        <member name="T:Swan.Diagnostics.Benchmark">
            <summary>
            A simple benchmarking class.
            </summary>
            <example>
            The following code demonstrates how to create a simple benchmark.
            <code>
            namespace Examples.Benchmark.Simple
            {
                using Swan.Diagnostics;
            
                public class SimpleBenchmark
                {
                    public static void Main()
                    {
                         using (Benchmark.Start("Test"))
                         {
                            // do some logic in here
                         }
                         
                        // dump results into a string
                        var results = Benchmark.Dump();
                    }
                }
                
            }
            </code>
            </example>
        </member>
        <member name="M:Swan.Diagnostics.Benchmark.Start(System.String)">
            <summary>
            Starts measuring with the given identifier.
            </summary>
            <param name="identifier">The identifier.</param>
            <returns>A disposable object that when disposed, adds a benchmark result.</returns>
        </member>
        <member name="M:Swan.Diagnostics.Benchmark.Dump">
            <summary>
            Outputs the benchmark statistics.
            </summary>
            <returns>A string containing human-readable statistics.</returns>
        </member>
        <member name="M:Swan.Diagnostics.Benchmark.BenchmarkAction(System.Action)">
            <summary>
            Measures the elapsed time of the given action as a TimeSpan
            This method uses a high precision Stopwatch if it is available.
            </summary>
            <param name="target">The target.</param>
            <returns>
            A  time interval that represents a specified time, where the specification is in units of ticks.
            </returns>
            <exception cref="T:System.ArgumentNullException">target.</exception>
        </member>
        <member name="M:Swan.Diagnostics.Benchmark.Add(System.String,System.TimeSpan)">
            <summary>
            Adds the specified result to the given identifier.
            </summary>
            <param name="identifier">The identifier.</param>
            <param name="elapsed">The elapsed.</param>
        </member>
        <member name="T:Swan.Diagnostics.Benchmark.BenchmarkUnit">
            <summary>
            Represents a disposable benchmark unit.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="M:Swan.Diagnostics.Benchmark.BenchmarkUnit.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Diagnostics.Benchmark.BenchmarkUnit" /> class.
            </summary>
            <param name="identifier">The identifier.</param>
        </member>
        <member name="M:Swan.Diagnostics.Benchmark.BenchmarkUnit.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Swan.Diagnostics.Benchmark.BenchmarkUnit.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="alsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:Swan.Diagnostics.HighResolutionTimer">
            <summary>
            Provides access to a high-resolution, time measuring device.
            </summary>
            <seealso cref="T:System.Diagnostics.Stopwatch" />
        </member>
        <member name="M:Swan.Diagnostics.HighResolutionTimer.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Diagnostics.HighResolutionTimer"/> class.
            </summary>
            <exception cref="T:System.NotSupportedException">High-resolution timer not available.</exception>
        </member>
        <member name="P:Swan.Diagnostics.HighResolutionTimer.MicrosecondsPerTick">
            <summary>
            Gets the number of microseconds per timer tick.
            </summary>
        </member>
        <member name="P:Swan.Diagnostics.HighResolutionTimer.ElapsedMicroseconds">
            <summary>
            Gets the elapsed microseconds.
            </summary>
        </member>
        <member name="T:Swan.EnumHelper">
            <summary>
            Provide Enumerations helpers with internal cache.
            </summary>
        </member>
        <member name="M:Swan.EnumHelper.Retrieve``1">
            <summary>
            Gets all the names and enumerators from a specific Enum type.
            </summary>
            <typeparam name="T">The type of the attribute to be retrieved.</typeparam>
            <returns>A tuple of enumerator names and their value stored for the specified type.</returns>
        </member>
        <member name="M:Swan.EnumHelper.GetItemsWithValue``1(System.Boolean)">
            <summary>
            Gets the cached items with the enum item value.
            </summary>
            <typeparam name="T">The type of enumeration.</typeparam>
            <param name="humanize">if set to <c>true</c> [humanize].</param>
            <returns>
            A collection of Type/Tuple pairs 
            that represents items with the enum item value.
            </returns>
        </member>
        <member name="M:Swan.EnumHelper.GetFlagValues``1(System.Int32,System.Boolean)">
            <summary>
            Gets the flag values.
            </summary>
            <typeparam name="TEnum">The type of the enum.</typeparam>
            <param name="value">The value.</param>
            <param name="ignoreZero">if set to <c>true</c> [ignore zero].</param>
            <returns>
            A list of values in the flag.
            </returns>
        </member>
        <member name="M:Swan.EnumHelper.GetFlagValues``1(System.Int64,System.Boolean)">
            <summary>
            Gets the flag values.
            </summary>
            <typeparam name="TEnum">The type of the enum.</typeparam>
            <param name="value">The value.</param>
            <param name="ignoreZero">if set to <c>true</c> [ignore zero].</param>
            <returns>
            A list of values in the flag.
            </returns>
        </member>
        <member name="M:Swan.EnumHelper.GetFlagValues``1(System.Byte,System.Boolean)">
            <summary>
            Gets the flag values.
            </summary>
            <typeparam name="TEnum">The type of the enum.</typeparam>
            <param name="value">The value.</param>
            <param name="ignoreZero">if set to <c>true</c> [ignore zero].</param>
            <returns>
            A list of values in the flag.
            </returns>
        </member>
        <member name="M:Swan.EnumHelper.GetFlagNames``1(System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Gets the flag names.
            </summary>
            <typeparam name="TEnum">The type of the enum.</typeparam>
            <param name="value">the value.</param>
            <param name="ignoreZero">if set to <c>true</c> [ignore zero].</param>
            <param name="humanize">if set to <c>true</c> [humanize].</param>
            <returns>
            A list of flag names.
            </returns>
        </member>
        <member name="M:Swan.EnumHelper.GetFlagNames``1(System.Int64,System.Boolean,System.Boolean)">
            <summary>
            Gets the flag names.
            </summary>
            <typeparam name="TEnum">The type of the enum.</typeparam>
            <param name="value">The value.</param>
            <param name="ignoreZero">if set to <c>true</c> [ignore zero].</param>
            <param name="humanize">if set to <c>true</c> [humanize].</param>
            <returns>
            A list of flag names.
            </returns>
        </member>
        <member name="M:Swan.EnumHelper.GetFlagNames``1(System.Byte,System.Boolean,System.Boolean)">
            <summary>
            Gets the flag names.
            </summary>
            <typeparam name="TEnum">The type of the enum.</typeparam>
            <param name="value">The value.</param>
            <param name="ignoreZero">if set to <c>true</c> [ignore zero].</param>
            <param name="humanize">if set to <c>true</c> [humanize].</param>
            <returns>
            A list of flag names.
            </returns>
        </member>
        <member name="M:Swan.EnumHelper.GetItemsWithIndex``1(System.Boolean)">
            <summary>
            Gets the cached items with the enum item index.
            </summary>
            <typeparam name="T">The type of enumeration.</typeparam>
            <param name="humanize">if set to <c>true</c> [humanize].</param>
            <returns>
            A collection of Type/Tuple pairs that represents items with the enum item value.
            </returns>
        </member>
        <member name="T:Swan.OperatingSystem">
            <summary>
            Enumeration of Operating Systems.
            </summary>
        </member>
        <member name="F:Swan.OperatingSystem.Unknown">
            <summary>
            Unknown OS
            </summary>
        </member>
        <member name="F:Swan.OperatingSystem.Windows">
            <summary>
            Windows
            </summary>
        </member>
        <member name="F:Swan.OperatingSystem.Unix">
            <summary>
            UNIX/Linux
            </summary>
        </member>
        <member name="F:Swan.OperatingSystem.Osx">
            <summary>
            macOS (OSX)
            </summary>
        </member>
        <member name="T:Swan.Endianness">
            <summary>
            Defines Endianness, big or little.
            </summary>
        </member>
        <member name="F:Swan.Endianness.Big">
            <summary>
            In big endian, you store the most significant byte in the smallest address. 
            </summary>
        </member>
        <member name="F:Swan.Endianness.Little">
            <summary>
            In little endian, you store the least significant byte in the smallest address.
            </summary>
        </member>
        <member name="T:Swan.ByteArrayExtensions">
            <summary>
            Provides various extension methods for byte arrays and streams.
            </summary>
        </member>
        <member name="M:Swan.ByteArrayExtensions.ToLowerHex(System.Byte[],System.Boolean)">
            <summary>
            Converts an array of bytes to its lower-case, hexadecimal representation.
            </summary>
            <param name="bytes">The bytes.</param>
            <param name="addPrefix">if set to <c>true</c> add the 0x prefix tot he output.</param>
            <returns>
            The specified string instance; no actual conversion is performed.
            </returns>
            <exception cref="T:System.ArgumentNullException">bytes.</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.ToUpperHex(System.Byte[],System.Boolean)">
            <summary>
            Converts an array of bytes to its upper-case, hexadecimal representation.
            </summary>
            <param name="bytes">The bytes.</param>
            <param name="addPrefix">if set to <c>true</c> [add prefix].</param>
            <returns>
            The specified string instance; no actual conversion is performed.
            </returns>
            <exception cref="T:System.ArgumentNullException">bytes.</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.ToDashedHex(System.Byte[])">
            <summary>
            Converts an array of bytes to a sequence of dash-separated, hexadecimal,
            uppercase characters.
            </summary>
            <param name="bytes">The bytes.</param>
            <returns>
            A string of hexadecimal pairs separated by hyphens, where each pair represents
            the corresponding element in value; for example, "7F-2C-4A-00".
            </returns>
        </member>
        <member name="M:Swan.ByteArrayExtensions.ToBase64(System.Byte[])">
            <summary>
            Converts an array of bytes to a base-64 encoded string.
            </summary>
            <param name="bytes">The bytes.</param>
            <returns>A <see cref="T:System.String" /> converted from an array of bytes.</returns>
        </member>
        <member name="M:Swan.ByteArrayExtensions.ConvertHexadecimalToBytes(System.String)">
            <summary>
            Converts a set of hexadecimal characters (uppercase or lowercase)
            to a byte array. String length must be a multiple of 2 and
            any prefix (such as 0x) has to be avoided for this to work properly.
            </summary>
            <param name="this">The hexadecimal.</param>
            <returns>
            A byte array containing the results of encoding the specified set of characters.
            </returns>
            <exception cref="T:System.ArgumentNullException">hex.</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.GetBitValueAt(System.Byte,System.Byte,System.Byte)">
            <summary>
            Gets the bit value at the given offset.
            </summary>
            <param name="this">The b.</param>
            <param name="offset">The offset.</param>
            <param name="length">The length.</param>
            <returns>
            Bit value at the given offset.
            </returns>
        </member>
        <member name="M:Swan.ByteArrayExtensions.SetBitValueAt(System.Byte,System.Byte,System.Byte,System.Byte)">
            <summary>
            Sets the bit value at the given offset.
            </summary>
            <param name="this">The b.</param>
            <param name="offset">The offset.</param>
            <param name="length">The length.</param>
            <param name="value">The value.</param>
            <returns>Bit value at the given offset.</returns>
        </member>
        <member name="M:Swan.ByteArrayExtensions.SetBitValueAt(System.Byte,System.Byte,System.Byte)">
            <summary>
            Sets the bit value at the given offset.
            </summary>
            <param name="this">The b.</param>
            <param name="offset">The offset.</param>
            <param name="value">The value.</param>
            <returns>Bit value at the given offset.</returns>
        </member>
        <member name="M:Swan.ByteArrayExtensions.Split(System.Byte[],System.Int32,System.Byte[])">
            <summary>
            Splits a byte array delimited by the specified sequence of bytes.
            Each individual element in the result will contain the split sequence terminator if it is found to be delimited by it.
            For example if you split [1,2,3,4] by a sequence of [2,3] this method will return a list with 2 byte arrays, one containing [1,2,3] and the
            second one containing 4. Use the Trim extension methods to remove terminator sequences.
            </summary>
            <param name="this">The buffer.</param>
            <param name="offset">The offset at which to start splitting bytes. Any bytes before this will be discarded.</param>
            <param name="sequence">The sequence.</param>
            <returns>
            A byte array containing the results the specified sequence of bytes.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            buffer
            or
            sequence.
            </exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.DeepClone(System.Byte[])">
            <summary>
            Clones the specified buffer, byte by byte.
            </summary>
            <param name="this">The buffer.</param>
            <returns>
            A byte array containing the results of encoding the specified set of characters.
            </returns>
            <exception cref="T:System.ArgumentNullException">this</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.TrimStart(System.Byte[],System.Byte[])">
            <summary>
            Removes the specified sequence from the start of the buffer if the buffer begins with such sequence.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="sequence">The sequence.</param>
            <returns>
            A new trimmed byte array.
            </returns>
            <exception cref="T:System.ArgumentNullException">buffer.</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.TrimEnd(System.Byte[],System.Byte[])">
            <summary>
            Removes the specified sequence from the end of the buffer if the buffer ends with such sequence.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="sequence">The sequence.</param>
            <returns>
            A byte array containing the results of encoding the specified set of characters.
            </returns>
            <exception cref="T:System.ArgumentNullException">buffer.</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.Trim(System.Byte[],System.Byte[])">
            <summary>
            Removes the specified sequence from the end and the start of the buffer 
            if the buffer ends and/or starts with such sequence.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="sequence">The sequence.</param>
            <returns>A byte array containing the results of encoding the specified set of characters.</returns>
        </member>
        <member name="M:Swan.ByteArrayExtensions.EndsWith(System.Byte[],System.Byte[])">
            <summary>
            Determines if the specified buffer ends with the given sequence of bytes.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="sequence">The sequence.</param>
            <returns>
            True if the specified buffer is ends; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException">buffer.</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.StartsWith(System.Byte[],System.Byte[])">
            <summary>
            Determines if the specified buffer starts with the given sequence of bytes.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="sequence">The sequence.</param>
            <returns><c>true</c> if the specified buffer starts; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Swan.ByteArrayExtensions.Contains(System.Byte[],System.Byte[])">
            <summary>
            Determines whether the buffer contains the specified sequence.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="sequence">The sequence.</param>
            <returns>
              <c>true</c> if [contains] [the specified sequence]; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Swan.ByteArrayExtensions.IsEqualTo(System.Byte[],System.Byte[])">
            <summary>
            Determines whether the buffer exactly matches, byte by byte the specified sequence.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="sequence">The sequence.</param>
            <returns>
              <c>true</c> if [is equal to] [the specified sequence]; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">buffer.</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.GetIndexOf(System.Byte[],System.Byte[],System.Int32)">
            <summary>
            Returns the first instance of the matched sequence based on the given offset.
            If no matches are found then this method returns -1.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="sequence">The sequence.</param>
            <param name="offset">The offset.</param>
            <returns>The index of the sequence.</returns>
            <exception cref="T:System.ArgumentNullException">
            buffer
            or
            sequence.
            </exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.Append(System.IO.MemoryStream,System.Byte[])">
            <summary>
            Appends the Memory Stream with the specified buffer.
            </summary>
            <param name="stream">The stream.</param>
            <param name="buffer">The buffer.</param>
            <returns>
            The same MemoryStream instance.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            stream
            or
            buffer.
            </exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.Append(System.IO.MemoryStream,System.Collections.Generic.IEnumerable{System.Byte})">
            <summary>
            Appends the Memory Stream with the specified buffer.
            </summary>
            <param name="stream">The stream.</param>
            <param name="buffer">The buffer.</param>
            <returns>
            Block of bytes to the current stream using data read from a buffer.
            </returns>
            <exception cref="T:System.ArgumentNullException">buffer.</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.Append(System.IO.MemoryStream,System.Collections.Generic.IEnumerable{System.Byte[]})">
            <summary>
            Appends the Memory Stream with the specified set of buffers.
            </summary>
            <param name="stream">The stream.</param>
            <param name="buffers">The buffers.</param>
            <returns>
            Block of bytes to the current stream using data read from a buffer.
            </returns>
            <exception cref="T:System.ArgumentNullException">buffers.</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.ToText(System.Collections.Generic.IEnumerable{System.Byte},System.Text.Encoding)">
            <summary>
            Converts an array of bytes into text with the specified encoding.
            </summary>
            <param name="buffer">The buffer.</param>
            <param name="encoding">The encoding.</param>
            <returns>A <see cref="T:System.String" /> that contains the results of decoding the specified sequence of bytes.</returns>
        </member>
        <member name="M:Swan.ByteArrayExtensions.ToText(System.Collections.Generic.IEnumerable{System.Byte})">
            <summary>
            Converts an array of bytes into text with UTF8 encoding.
            </summary>
            <param name="buffer">The buffer.</param>
            <returns>A <see cref="T:System.String" /> that contains the results of decoding the specified sequence of bytes.</returns>
        </member>
        <member name="M:Swan.ByteArrayExtensions.ReadBytesAsync(System.IO.Stream,System.Int64,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Reads the bytes asynchronous.
            </summary>
            <param name="stream">The stream.</param>
            <param name="length">The length.</param>
            <param name="bufferLength">Length of the buffer.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>
            A byte array containing the results of encoding the specified set of characters.
            </returns>
            <exception cref="T:System.ArgumentNullException">stream.</exception>
        </member>
        <member name="M:Swan.ByteArrayExtensions.ReadBytesAsync(System.IO.Stream,System.Int32,System.Threading.CancellationToken)">
            <summary>
            Reads the bytes asynchronous.
            </summary>
            <param name="stream">The stream.</param>
            <param name="length">The length.</param>
            <param name="cancellationToken">The cancellation token.</param>
            <returns>
            A byte array containing the results of encoding the specified set of characters.
            </returns>
            <exception cref="T:System.ArgumentNullException">stream.</exception>
        </member>
        <member name="T:Swan.Extensions">
            <summary>
            Extension methods.
            </summary>
            <summary>
            Extension methods.
            </summary>
        </member>
        <member name="M:Swan.Extensions.CopyPropertiesTo``1(``0,System.Object,System.String[])">
            <summary>
            Iterates over the public, instance, readable properties of the source and
            tries to write a compatible value to a public, instance, writable property in the destination.
            </summary>
            <typeparam name="T">The type of the source.</typeparam>
            <param name="source">The source.</param>
            <param name="target">The target.</param>
            <param name="ignoreProperties">The ignore properties.</param>
            <returns>
            Number of properties that was copied successful.
            </returns>
        </member>
        <member name="M:Swan.Extensions.CopyOnlyPropertiesTo(System.Object,System.Object,System.String[])">
            <summary>
            Iterates over the public, instance, readable properties of the source and
            tries to write a compatible value to a public, instance, writable property in the destination.
            </summary>
            <param name="source">The source.</param>
            <param name="target">The destination.</param>
            <param name="propertiesToCopy">Properties to copy.</param>
            <returns>
            Number of properties that were successfully copied.
            </returns>
        </member>
        <member name="M:Swan.Extensions.CopyPropertiesToNew``1(System.Object,System.String[])">
            <summary>
            Copies the properties to new instance of T.
            </summary>
            <typeparam name="T">The new object type.</typeparam>
            <param name="source">The source.</param>
            <param name="ignoreProperties">The ignore properties.</param>
            <returns>
            The specified type with properties copied.
            </returns>
            <exception cref="T:System.ArgumentNullException">source.</exception>
        </member>
        <member name="M:Swan.Extensions.CopyOnlyPropertiesToNew``1(System.Object,System.String[])">
            <summary>
            Copies the only properties to new instance of T.
            </summary>
            <typeparam name="T">Object Type.</typeparam>
            <param name="source">The source.</param>
            <param name="propertiesToCopy">The properties to copy.</param>
            <returns>
            The specified type with properties copied.
            </returns>
            <exception cref="T:System.ArgumentNullException">source.</exception>
        </member>
        <member name="M:Swan.Extensions.CopyKeyValuePairTo(System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.String[])">
            <summary>
            Iterates over the keys of the source and tries to write a compatible value to a public, 
            instance, writable property in the destination.
            </summary>
            <param name="source">The source.</param>
            <param name="target">The target.</param>
            <param name="ignoreKeys">The ignore keys.</param>
            <returns>Number of properties that was copied successful.</returns>
        </member>
        <member name="M:Swan.Extensions.CopyKeyValuePairToNew``1(System.Collections.Generic.IDictionary{System.String,System.Object},System.String[])">
            <summary>
            Iterates over the keys of the source and tries to write a compatible value to a public,
            instance, writable property in the destination.
            </summary>
            <typeparam name="T">Object Type.</typeparam>
            <param name="source">The source.</param>
            <param name="ignoreKeys">The ignore keys.</param>
            <returns>
            The specified type with properties copied.
            </returns>
        </member>
        <member name="M:Swan.Extensions.Retry(System.Action,System.TimeSpan,System.Int32)">
            <summary>
            Does the specified action.
            </summary>
            <param name="action">The action.</param>
            <param name="retryInterval">The retry interval.</param>
            <param name="retryCount">The retry count.</param>
        </member>
        <member name="M:Swan.Extensions.Retry``1(System.Func{``0},System.TimeSpan,System.Int32)">
            <summary>
            Does the specified action.
            </summary>
            <typeparam name="T">The type of the source.</typeparam>
            <param name="action">The action.</param>
            <param name="retryInterval">The retry interval.</param>
            <param name="retryCount">The retry count.</param>
            <returns>
            The return value of the method that this delegate encapsulates.
            </returns>
            <exception cref="T:System.ArgumentNullException">action.</exception>
            <exception cref="T:System.AggregateException">Represents one or many errors that occur during application execution.</exception>
        </member>
        <member name="M:Swan.Extensions.GetCopyableProperties(System.Object)">
             <summary>
             Gets the copyable properties.
            
             If there is no properties with the attribute <c>AttributeCache</c> returns all the properties.
             </summary>
             <param name="this">The object.</param>
             <returns>
             Array of properties.
             </returns>
             <exception cref="T:System.ArgumentNullException">model.</exception>
             <seealso cref="T:Swan.Reflection.AttributeCache"/>
        </member>
        <member name="M:Swan.Extensions.GetValueOrDefault``2(System.Collections.Generic.IDictionary{``0,``1},``0,``1)">
            <summary>
            Gets the value if exists or default.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="dict">The dictionary.</param>
            <param name="key">The key.</param>
            <param name="defaultValue">The default value.</param>
            <returns>
            The value of the provided key or default.
            </returns>
            <exception cref="T:System.ArgumentNullException">dict.</exception>
        </member>
        <member name="M:Swan.Extensions.GetOrAdd``2(System.Collections.Generic.IDictionary{``0,``1},``0,System.Func{``0,``1})">
            <summary>
            Adds a key/value pair to the Dictionary if the key does not already exist.
            If the value is null, the key will not be updated.
            Based on <c>ConcurrentDictionary.GetOrAdd</c> method.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="dict">The dictionary.</param>
            <param name="key">The key.</param>
            <param name="valueFactory">The value factory.</param>
            <returns>
            The value for the key.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            dict
            or
            valueFactory.
            </exception>
        </member>
        <member name="M:Swan.Extensions.ForEach``2(System.Collections.Generic.IDictionary{``0,``1},System.Action{``0,``1})">
            <summary>
            Executes the item action for each element in the Dictionary.
            </summary>
            <typeparam name="TKey">The type of the key.</typeparam>
            <typeparam name="TValue">The type of the value.</typeparam>
            <param name="dict">The dictionary.</param>
            <param name="itemAction">The item action.</param>
            <exception cref="T:System.ArgumentNullException">dict.</exception>
        </member>
        <member name="T:Swan.DateExtensions">
            <summary>
            Provides extension methods for <see cref="T:System.DateTime"/>.
            </summary>
        </member>
        <member name="M:Swan.DateExtensions.ToSortableDate(System.DateTime)">
            <summary>
            Converts the date to a YYYY-MM-DD string.
            </summary>
            <param name="this">The <see cref="T:System.DateTime"/> on which this method is called.</param>
            <returns>The concatenation of date.Year, date.Month and date.Day.</returns>
        </member>
        <member name="M:Swan.DateExtensions.ToSortableDateTime(System.DateTime)">
            <summary>
            Converts the date to a YYYY-MM-DD HH:II:SS string.
            </summary>
            <param name="this">The <see cref="T:System.DateTime"/> on which this method is called.</param>
            <returns>The concatenation of date.Year, date.Month, date.Day, date.Hour, date.Minute and date.Second.</returns>
        </member>
        <member name="M:Swan.DateExtensions.ToDateTime(System.String)">
            <summary>
            Parses a YYYY-MM-DD and optionally it time part, HH:II:SS into a DateTime.
            </summary>
            <param name="this">The sortable date.</param>
            <returns>
            A new instance of the DateTime structure to 
            the specified year, month, day, hour, minute and second.
            </returns>
            <exception cref="T:System.ArgumentNullException">sortableDate.</exception>
            <exception cref="T:System.Exception">
            Represents errors that occur during application execution.
            </exception>
            <exception cref="T:System.ArgumentException">
            Unable to parse sortable date and time. - sortableDate.
            </exception>
        </member>
        <member name="M:Swan.DateExtensions.DateRange(System.DateTime,System.DateTime)">
            <summary>
            Creates a date range.
            </summary>
            <param name="startDate">The start date.</param>
            <param name="endDate">The end date.</param>
            <returns>
            A sequence of integral numbers within a specified date's range.
            </returns>
        </member>
        <member name="M:Swan.DateExtensions.RoundUp(System.DateTime,System.TimeSpan)">
            <summary>
            Rounds up a date to match a timespan.
            </summary>
            <param name="date">The datetime.</param>
            <param name="timeSpan">The timespan to match.</param>
            <returns>
            A new instance of the DateTime structure to the specified datetime and timespan ticks.
            </returns>
        </member>
        <member name="M:Swan.DateExtensions.ToUnixEpochDate(System.DateTime)">
            <summary>
            Get this datetime as a Unix epoch timestamp (seconds since Jan 1, 1970, midnight UTC).
            </summary>
            <param name="this">The <see cref="T:System.DateTime"/> on which this method is called.</param>
            <returns>Seconds since Unix epoch.</returns>
        </member>
        <member name="M:Swan.DateExtensions.GetDateTimeSpan(System.DateTime,System.DateTime)">
            <summary>
            Compares a Date to another and returns a <c>DateTimeSpan</c>.
            </summary>
            <param name="dateStart">The date start.</param>
            <param name="dateEnd">The date end.</param>
            <returns>A DateTimeSpan with the Years, Months, Days, Hours, Minutes, Seconds and Milliseconds between the dates.</returns>
        </member>
        <member name="M:Swan.DateExtensions.AsCronCanRun(System.DateTime,System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32})">
            <summary>
            Compare the Date elements(Months, Days, Hours, Minutes).
            </summary>
            <param name="this">The <see cref="T:System.DateTime"/> on which this method is called.</param>
            <param name="minute">The minute (0-59).</param>
            <param name="hour">The hour. (0-23).</param>
            <param name="dayOfMonth">The day of month. (1-31).</param>
            <param name="month">The month. (1-12).</param>
            <param name="dayOfWeek">The day of week. (0-6)(Sunday = 0).</param>
            <returns>Returns <c>true</c> if Months, Days, Hours and Minutes match, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Swan.DateExtensions.AsCronCanRun(System.DateTime,System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Compare the Date elements(Months, Days, Hours, Minutes).
            </summary>
            <param name="this">The <see cref="T:System.DateTime"/> on which this method is called.</param>
            <param name="minute">The minute (0-59).</param>
            <param name="hour">The hour. (0-23).</param>
            <param name="dayOfMonth">The day of month. (1-31).</param>
            <param name="month">The month. (1-12).</param>
            <param name="dayOfWeek">The day of week. (0-6)(Sunday = 0).</param>
            <returns>Returns <c>true</c> if Months, Days, Hours and Minutes match, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Swan.DateExtensions.ToRfc1123String(System.DateTime)">
            <summary>
            Converts a <see cref="T:System.DateTime"/> to the <see href="https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings#RFC1123">RFC1123 format</see>.
            </summary>
            <param name="this">The <see cref="T:System.DateTime"/> on which this method is called.</param>
            <returns>The string representation of <paramref name="this"/> according to <see href="https://tools.ietf.org/html/rfc1123#page-54">RFC1123</see>.</returns>
            <remarks>
            <para>If <paramref name="this"/> is not a UTC date / time, its UTC equivalent is converted, leaving <paramref name="this"/> unchanged.</para>
            </remarks>
        </member>
        <member name="T:Swan.EnumerableExtensions">
            <summary>
            This class contains extension methods for types implementing IEnumerable&lt;TSource&gt;
            </summary>
        </member>
        <member name="M:Swan.EnumerableExtensions.UnionExcludingNulls``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            This method returns the <see cref="M:System.Linq.Enumerable.Union``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">Union</see>
            of all non-null parameters.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="this">An IEnumerable&lt;TSource&gt; whose distinct elements forms the first set of the union.</param>
            <param name="second">An IEnumerable&lt;TSource&gt; whose distinct elements forms the second set of the union.</param>
            <returns>
            An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements from non-null input sequences, excluding duplicates.
            </returns>
        </member>
        <member name="M:Swan.EnumerableExtensions.UnionExcludingNulls``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            This method returns the <see cref="M:System.Linq.Enumerable.Union``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">Union</see>
            of all non-null parameters.
            </summary>
            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
            <param name="this">An IEnumerable&lt;TSource&gt; whose distinct elements forms the first set of the union.</param>
            <param name="second">An IEnumerable&lt;TSource&gt; whose distinct elements forms the second set of the union.</param>
            <param name="comparer">The IEqualityComparer&lt;TSource&gt; to compare values.</param>
            <returns>
            An <see cref="T:System.Collections.Generic.IEnumerable`1" /> that contains the elements from non-null input sequences, excluding duplicates.
            </returns>
        </member>
        <member name="T:Swan.ExceptionExtensions">
            <summary>
            Provides extension methods for <see cref="T:System.Exception"/>.
            </summary>
        </member>
        <member name="M:Swan.ExceptionExtensions.IsCriticalException(System.Exception)">
            <summary>
            Returns a value that tells whether an <see cref="T:System.Exception"/> is of a type that
            we better not catch and ignore.
            </summary>
            <param name="this">The exception being thrown.</param>
            <returns><see langword="true"/> if <paramref name="this"/> is a critical exception;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:Swan.ExceptionExtensions.IsFatalException(System.Exception)">
            <summary>
            Returns a value that tells whether an <see cref="T:System.Exception"/> is of a type that
            will likely cause application failure.
            </summary>
            <param name="this">The exception being thrown.</param>
            <returns><see langword="true"/> if <paramref name="this"/> is a fatal exception;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:Swan.ExceptionExtensions.RethrowPreservingStackTrace(System.Exception)">
            <summary>
            <para>Rethrows an already-thrown exception, preserving the stack trace of the original throw.</para>
            <para>This method does not return; its return type is an exception type so it can be used
            with <c>throw</c> semantics, e.g.: <c>throw ex.RethrowPreservingStackTrace();</c>,
            to let static code analysis tools that it throws instead of returning.</para>
            </summary>
            <param name="this">The exception to rethrow.</param>
            <returns>This method should never return; if it does, it is an indication of an internal error,
            so it returns an instance of <see cref="T:Swan.InternalErrorException"/>.</returns>
        </member>
        <member name="T:Swan.FunctionalExtensions">
            <summary>
            Functional programming extension methods.
            </summary>
        </member>
        <member name="M:Swan.FunctionalExtensions.When``1(System.Linq.IQueryable{``0},System.Func{System.Boolean},System.Func{System.Linq.IQueryable{``0},System.Linq.IQueryable{``0}})">
            <summary>
            Whens the specified condition.
            </summary>
            <typeparam name="T">The type of IQueryable.</typeparam>
            <param name="list">The list.</param>
            <param name="condition">The condition.</param>
            <param name="fn">The function.</param>
            <returns>
            The IQueryable.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            this
            or
            condition
            or
            fn.
            </exception>
        </member>
        <member name="M:Swan.FunctionalExtensions.When``1(System.Collections.Generic.IEnumerable{``0},System.Func{System.Boolean},System.Func{System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0}})">
            <summary>
            Whens the specified condition.
            </summary>
            <typeparam name="T">The type of IEnumerable.</typeparam>
            <param name="list">The list.</param>
            <param name="condition">The condition.</param>
            <param name="fn">The function.</param>
            <returns>
            The IEnumerable.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            this
            or
            condition
            or
            fn.
            </exception>
        </member>
        <member name="M:Swan.FunctionalExtensions.AddWhen``1(System.Collections.Generic.IList{``0},System.Func{System.Boolean},System.Func{``0})">
            <summary>
            Adds the value when the condition is true.
            </summary>
            <typeparam name="T">The type of IList element.</typeparam>
            <param name="list">The list.</param>
            <param name="condition">The condition.</param>
            <param name="value">The value.</param>
            <returns>
            The IList.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            this
            or
            condition
            or
            value.
            </exception>
        </member>
        <member name="M:Swan.FunctionalExtensions.AddWhen``1(System.Collections.Generic.IList{``0},System.Boolean,``0)">
            <summary>
            Adds the value when the condition is true.
            </summary>
            <typeparam name="T">The type of IList element.</typeparam>
            <param name="list">The list.</param>
            <param name="condition">if set to <c>true</c> [condition].</param>
            <param name="value">The value.</param>
            <returns>
            The IList.
            </returns>
            <exception cref="T:System.ArgumentNullException">list.</exception>
        </member>
        <member name="M:Swan.FunctionalExtensions.AddRangeWhen``1(System.Collections.Generic.List{``0},System.Func{System.Boolean},System.Func{System.Collections.Generic.IEnumerable{``0}})">
            <summary>
            Adds the range when the condition is true.
            </summary>
            <typeparam name="T">The type of List element.</typeparam>
            <param name="list">The list.</param>
            <param name="condition">The condition.</param>
            <param name="value">The value.</param>
            <returns>
            The List.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            this
            or
            condition
            or
            value.
            </exception>
        </member>
        <member name="T:Swan.IEnumerableExtensions">
            <summary>
            This class contains extensions methods for IEnumerable
            </summary>
        </member>
        <member name="M:Swan.IEnumerableExtensions.UnionNull``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            This method make an union of two IEnumerables
            validation when some of them is null.
            </summary>
            <typeparam name="T">T</typeparam>
            <param name="this">The this.</param>
            <param name="second">The second.</param>
            <returns> The Union </returns>
        </member>
        <member name="T:Swan.PropertyProxyExtensions">
            <summary>
            Provides functionality to access <see cref="T:Swan.Reflection.IPropertyProxy"/> objects
            associated with types. Getters and setters are stored as delegates compiled
            from constructed lambda expressions for fast access.
            </summary>
        </member>
        <member name="M:Swan.PropertyProxyExtensions.PropertyProxies(System.Type)">
            <summary>
            Gets the property proxies associated with a given type.
            </summary>
            <param name="t">The type to retrieve property proxies from.</param>
            <returns>A dictionary with property names as keys and <see cref="T:Swan.Reflection.IPropertyProxy"/> objects as values.</returns>
        </member>
        <member name="M:Swan.PropertyProxyExtensions.PropertyProxies``1(``0)">
            <summary>
            Gets the property proxies associated with the provided instance type.
            </summary>
            <typeparam name="T">The instance type.</typeparam>
            <param name="obj">The instance.</param>
            <returns>A dictionary with property names as keys and <see cref="T:Swan.Reflection.IPropertyProxy"/> objects as values.</returns>
        </member>
        <member name="M:Swan.PropertyProxyExtensions.PropertyProxy(System.Type,System.String)">
            <summary>
            Gets the property proxy given the property name.
            </summary>
            <param name="t">The associated type.</param>
            <param name="propertyName">Name of the property.</param>
            <returns>The associated <see cref="T:Swan.Reflection.IPropertyProxy"/></returns>
        </member>
        <member name="M:Swan.PropertyProxyExtensions.PropertyProxy``1(``0,System.String)">
            <summary>
            Gets the property proxy given the property name.
            </summary>
            <typeparam name="T">The type of instance to extract proxies from.</typeparam>
            <param name="obj">The instance to extract proxies from.</param>
            <param name="propertyName">Name of the property.</param>
            <returns>The associated <see cref="T:Swan.Reflection.IPropertyProxy"/></returns>
        </member>
        <member name="M:Swan.PropertyProxyExtensions.PropertyProxy``2(``0,System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
            Gets the property proxy given the property name as an expression.
            </summary>
            <typeparam name="T">The instance type.</typeparam>
            <typeparam name="V">The property value type.</typeparam>
            <param name="obj">The object.</param>
            <param name="propertyExpression">The property expression.</param>
            <returns>The associated <see cref="T:Swan.Reflection.IPropertyProxy"/></returns>
        </member>
        <member name="M:Swan.PropertyProxyExtensions.ReadProperty``2(``0,System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
            Reads the property value.
            </summary>
            <typeparam name="T">The type to get property proxies from.</typeparam>
            <typeparam name="V">The type of the property.</typeparam>
            <param name="obj">The instance.</param>
            <param name="propertyExpression">The property expression.</param>
            <returns>
            The value obtained from the associated <see cref="T:Swan.Reflection.IPropertyProxy" />
            </returns>
            <exception cref="T:System.ArgumentNullException">obj.</exception>
        </member>
        <member name="M:Swan.PropertyProxyExtensions.ReadProperty``1(``0,System.String)">
            <summary>
            Reads the property value.
            </summary>
            <typeparam name="T">The type to get property proxies from.</typeparam>
            <param name="obj">The instance.</param>
            <param name="propertyName">Name of the property.</param>
            <returns>
            The value obtained from the associated <see cref="T:Swan.Reflection.IPropertyProxy" />
            </returns>
            <exception cref="T:System.ArgumentNullException">obj.</exception>
        </member>
        <member name="M:Swan.PropertyProxyExtensions.WriteProperty``2(``0,System.Linq.Expressions.Expression{System.Func{``0,``1}},``1)">
            <summary>
            Writes the property value.
            </summary>
            <typeparam name="T">The type to get property proxies from.</typeparam>
            <typeparam name="TV">The type of the property.</typeparam>
            <param name="obj">The instance.</param>
            <param name="propertyExpression">The property expression.</param>
            <param name="value">The value.</param>
        </member>
        <member name="M:Swan.PropertyProxyExtensions.WriteProperty``1(``0,System.String,System.Object)">
            <summary>
            Writes the property value using the property proxy.
            </summary>
            <typeparam name="T">The type to get property proxies from.</typeparam>
            <param name="obj">The instance.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="value">The value.</param>
        </member>
        <member name="T:Swan.ReflectionExtensions">
            <summary>
            Provides various extension methods for Reflection and Types.
            </summary>
        </member>
        <member name="M:Swan.ReflectionExtensions.GetAllTypes(System.Reflection.Assembly)">
            <summary>
            Gets all types within an assembly in a safe manner.
            </summary>
            <param name="assembly">The assembly.</param>
            <returns>
            Array of Type objects representing the types specified by an assembly.
            </returns>
            <exception cref="T:System.ArgumentNullException">assembly.</exception>
        </member>
        <member name="M:Swan.ReflectionExtensions.GetDefault(System.Type)">
            <summary>
            The closest programmatic equivalent of default(T).
            </summary>
            <param name="type">The type.</param>
            <returns>
            Default value of this type.
            </returns>
            <exception cref="T:System.ArgumentNullException">type.</exception>
        </member>
        <member name="M:Swan.ReflectionExtensions.IsCollection(System.Type)">
            <summary>
            Determines whether this type is compatible with ICollection.
            </summary>
            <param name="sourceType">The type.</param>
            <returns>
              <c>true</c> if the specified source type is collection; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">sourceType.</exception>
        </member>
        <member name="M:Swan.ReflectionExtensions.GetMethod(System.Type,System.Reflection.BindingFlags,System.String,System.Type[],System.Type[])">
            <summary>
            Gets a method from a type given the method name, binding flags, generic types and parameter types.
            </summary>
            <param name="type">Type of the source.</param>
            <param name="bindingFlags">The binding flags.</param>
            <param name="methodName">Name of the method.</param>
            <param name="genericTypes">The generic types.</param>
            <param name="parameterTypes">The parameter types.</param>
            <returns>
            An object that represents the method with the specified name.
            </returns>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            The exception that is thrown when binding to a member results in more than one member matching the 
            binding criteria. This class cannot be inherited.
            </exception>
        </member>
        <member name="M:Swan.ReflectionExtensions.IsIEnumerable(System.Type)">
            <summary>
            Determines whether [is i enumerable request].
            </summary>
            <param name="type">The type.</param>
            <returns>
              <c>true</c> if [is i enumerable request] [the specified type]; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">type.</exception>
        </member>
        <member name="M:Swan.ReflectionExtensions.TryParseBasicType(System.Type,System.Object,System.Object@)">
            <summary>
            Tries to parse using the basic types.
            </summary>
            <param name="type">The type.</param>
            <param name="value">The value.</param>
            <param name="result">The result.</param>
            <returns>
              <c>true</c> if parsing was successful; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">type</exception>
        </member>
        <member name="M:Swan.ReflectionExtensions.TryParseBasicType(System.Type,System.String,System.Object@)">
            <summary>
            Tries to parse using the basic types.
            </summary>
            <param name="type">The type.</param>
            <param name="value">The value.</param>
            <param name="result">The result.</param>
            <returns>
              <c>true</c> if parsing was successful; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">type</exception>
        </member>
        <member name="M:Swan.ReflectionExtensions.TrySetBasicType(System.Reflection.PropertyInfo,System.Object,System.Object)">
            <summary>
            Tries the type of the set basic value to a property.
            </summary>
            <param name="propertyInfo">The property information.</param>
            <param name="value">The value.</param>
            <param name="target">The object.</param>
            <returns>
              <c>true</c> if parsing was successful; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">propertyInfo.</exception>
        </member>
        <member name="M:Swan.ReflectionExtensions.TrySetArrayBasicType(System.Type,System.Object,System.Array,System.Int32)">
            <summary>
            Tries the type of the set to an array a basic type.
            </summary>
            <param name="type">The type.</param>
            <param name="value">The value.</param>
            <param name="target">The array.</param>
            <param name="index">The index.</param>
            <returns>
              <c>true</c> if parsing was successful; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">type</exception>
        </member>
        <member name="M:Swan.ReflectionExtensions.TrySetArray(System.Reflection.PropertyInfo,System.Collections.Generic.IEnumerable{System.Object},System.Object)">
            <summary>
            Tries to set a property array with another array.
            </summary>
            <param name="propertyInfo">The property.</param>
            <param name="value">The value.</param>
            <param name="obj">The object.</param>
            <returns>
              <c>true</c> if parsing was successful; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">propertyInfo.</exception>
        </member>
        <member name="M:Swan.ReflectionExtensions.ToBoolean(System.String)">
            <summary>
            Convert a string to a boolean.
            </summary>
            <param name="str">The string.</param>
            <returns>
              <c>true</c> if the string represents a valid truly value, otherwise <c>false</c>.
            </returns>
        </member>
        <member name="M:Swan.ReflectionExtensions.ToBoolean(System.Object)">
            <summary>
            Convert a object to a boolean.
            </summary>
            <param name="value">The value.</param>
            <returns>
              <c>true</c> if the string represents a valid truly value, otherwise <c>false</c>.
            </returns>
        </member>
        <member name="T:Swan.StringExtensions">
            <summary>
            String related extension methods.
            </summary>
        </member>
        <member name="M:Swan.StringExtensions.ToStringInvariant(System.Object)">
            <summary>
            Returns a string that represents the given item
            It tries to use InvariantCulture if the ToString(IFormatProvider)
            overload exists.
            </summary>
            <param name="this">The item.</param>
            <returns>A <see cref="T:System.String" /> that represents the current object.</returns>
        </member>
        <member name="M:Swan.StringExtensions.ToStringInvariant``1(``0)">
            <summary>
            Returns a string that represents the given item
            It tries to use InvariantCulture if the ToString(IFormatProvider)
            overload exists.
            </summary>
            <typeparam name="T">The type to get the string.</typeparam>
            <param name="item">The item.</param>
            <returns>A <see cref="T:System.String" /> that represents the current object.</returns>
        </member>
        <member name="M:Swan.StringExtensions.RemoveControlChars(System.String,System.Char[])">
            <summary>
            Removes the control characters from a string except for those specified.
            </summary>
            <param name="value">The input.</param>
            <param name="excludeChars">When specified, these characters will not be removed.</param>
            <returns>
            A string that represents the current object.
            </returns>
            <exception cref="T:System.ArgumentNullException">input.</exception>
        </member>
        <member name="M:Swan.StringExtensions.ToJson(System.Object,System.Boolean)">
            <summary>
            Outputs JSON string representing this object.
            </summary>
            <param name="this">The object.</param>
            <param name="format">if set to <c>true</c> format the output.</param>
            <returns>A <see cref="T:System.String" /> that represents the current object.</returns>
        </member>
        <member name="M:Swan.StringExtensions.Stringify(System.Object)">
            <summary>
            Returns text representing the properties of the specified object in a human-readable format.
            While this method is fairly expensive computationally speaking, it provides an easy way to
            examine objects.
            </summary>
            <param name="this">The object.</param>
            <returns>A <see cref="T:System.String" /> that represents the current object.</returns>
        </member>
        <member name="M:Swan.StringExtensions.Slice(System.String,System.Int32,System.Int32)">
            <summary>
            Retrieves a section of the string, inclusive of both, the start and end indexes.
            This behavior is unlike JavaScript's Slice behavior where the end index is non-inclusive
            If the string is null it returns an empty string.
            </summary>
            <param name="this">The string.</param>
            <param name="startIndex">The start index.</param>
            <param name="endIndex">The end index.</param>
            <returns>Retrieves a substring from this instance.</returns>
        </member>
        <member name="M:Swan.StringExtensions.SliceLength(System.String,System.Int32,System.Int32)">
            <summary>
            Gets a part of the string clamping the length and startIndex parameters to safe values.
            If the string is null it returns an empty string. This is basically just a safe version
            of string.Substring.
            </summary>
            <param name="this">The string.</param>
            <param name="startIndex">The start index.</param>
            <param name="length">The length.</param>
            <returns>Retrieves a substring from this instance.</returns>
        </member>
        <member name="M:Swan.StringExtensions.ToLines(System.String)">
            <summary>
            Splits the specified text into r, n or rn separated lines.
            </summary>
            <param name="this">The text.</param>
            <returns>
            An array whose elements contain the substrings from this instance 
            that are delimited by one or more characters in separator.
            </returns>
        </member>
        <member name="M:Swan.StringExtensions.Humanize(System.String)">
            <summary>
            Humanizes (make more human-readable) an identifier-style string 
            in either camel case or snake case. For example, CamelCase will be converted to 
            Camel Case and Snake_Case will be converted to Snake Case.
            </summary>
            <param name="value">The identifier-style string.</param>
            <returns>A <see cref="T:System.String" /> humanized.</returns>
        </member>
        <member name="M:Swan.StringExtensions.Humanize(System.Boolean)">
            <summary>
            Humanizes (make more human-readable) an boolean.
            </summary>
            <param name="value">if set to <c>true</c> [value].</param>
            <returns>A <see cref="T:System.String" /> that represents the current boolean.</returns>
        </member>
        <member name="M:Swan.StringExtensions.Humanize(System.Object)">
            <summary>
            Humanizes (make more human-readable) the specified value.
            </summary>
            <param name="value">The value.</param>
            <returns>A <see cref="T:System.String" /> that represents the current object.</returns>
        </member>
        <member name="M:Swan.StringExtensions.Indent(System.String,System.Int32)">
            <summary>
            Indents the specified multi-line text with the given amount of leading spaces
            per line.
            </summary>
            <param name="value">The text.</param>
            <param name="spaces">The spaces.</param>
            <returns>A <see cref="T:System.String" /> that represents the current object.</returns>
        </member>
        <member name="M:Swan.StringExtensions.TextPositionAt(System.String,System.Int32)">
            <summary>
            Gets the line and column number (i.e. not index) of the
            specified character index. Useful to locate text in a multi-line
            string the same way a text editor does.
            Please not that the tuple contains first the line number and then the
            column number.
            </summary>
            <param name="value">The string.</param>
            <param name="charIndex">Index of the character.</param>
            <returns>A 2-tuple whose value is (item1, item2).</returns>
        </member>
        <member name="M:Swan.StringExtensions.ToSafeFilename(System.String)">
            <summary>
            Makes the file name system safe.
            </summary>
            <param name="value">The s.</param>
            <returns>
            A string with a safe file name.
            </returns>
            <exception cref="T:System.ArgumentNullException">s.</exception>
        </member>
        <member name="M:Swan.StringExtensions.FormatBytes(System.Int64)">
            <summary>
            Formats a long into the closest bytes string.
            </summary>
            <param name="bytes">The bytes length.</param>
            <returns>
            The string representation of the current Byte object, formatted as specified by the format parameter.
            </returns>
        </member>
        <member name="M:Swan.StringExtensions.FormatBytes(System.UInt64)">
            <summary>
            Formats a long into the closest bytes string.
            </summary>
            <param name="bytes">The bytes length.</param>
            <returns>
            A copy of format in which the format items have been replaced by the string 
            representations of the corresponding arguments.
            </returns>
        </member>
        <member name="M:Swan.StringExtensions.Truncate(System.String,System.Int32)">
            <summary>
            Truncates the specified value.
            </summary>
            <param name="value">The value.</param>
            <param name="maximumLength">The maximum length.</param>
            <returns>
            Retrieves a substring from this instance.
            The substring starts at a specified character position and has a specified length.
            </returns>
        </member>
        <member name="M:Swan.StringExtensions.Truncate(System.String,System.Int32,System.String)">
            <summary>
            Truncates the specified value and append the omission last.
            </summary>
            <param name="value">The value.</param>
            <param name="maximumLength">The maximum length.</param>
            <param name="omission">The omission.</param>
            <returns>
            Retrieves a substring from this instance.
            The substring starts at a specified character position and has a specified length.
            </returns>
        </member>
        <member name="M:Swan.StringExtensions.Contains(System.String,System.Char[])">
            <summary>
            Determines whether the specified <see cref="T:System.String"/> contains any of characters in
            the specified array of <see cref="T:System.Char"/>.
            </summary>
            <returns>
            <c>true</c> if <paramref name="value"/> contains any of <paramref name="chars"/>;
            otherwise, <c>false</c>.
            </returns>
            <param name="value">
            A <see cref="T:System.String"/> to test.
            </param>
            <param name="chars">
            An array of <see cref="T:System.Char"/> that contains characters to find.
            </param>
        </member>
        <member name="M:Swan.StringExtensions.ReplaceAll(System.String,System.String,System.Char[])">
            <summary>
            Replaces all chars in a string.
            </summary>
            <param name="value">The value.</param>
            <param name="replaceValue">The replace value.</param>
            <param name="chars">The chars.</param>
            <returns>The string with the characters replaced.</returns>
        </member>
        <member name="M:Swan.StringExtensions.Hex2Int(System.Char)">
            <summary>
            Convert hex character to an integer. Return -1 if char is something
            other than a hex char.
            </summary>
            <param name="value">The c.</param>
            <returns>Converted integer.</returns>
        </member>
        <member name="T:Swan.TaskExtensions">
            <summary>
            Provides extension methods for <see cref="T:System.Threading.Tasks.Task"/> and <see cref="T:System.Threading.Tasks.Task`1"/>.
            </summary>
        </member>
        <member name="M:Swan.TaskExtensions.Await(System.Threading.Tasks.Task)">
            <summary>
            <para>Suspends execution until the specified <see cref="T:System.Threading.Tasks.Task"/> is completed.</para>
            <para>This method operates similarly to the <see langword="await"/> C# operator,
            but is meant to be called from a non-<see langword="async"/> method.</para>
            </summary>
            <param name="this">The <see cref="T:System.Threading.Tasks.Task"/> on which this method is called.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Swan.TaskExtensions.Await``1(System.Threading.Tasks.Task{``0})">
            <summary>
            <para>Suspends execution until the specified <see cref="T:System.Threading.Tasks.Task"/> is completed
            and returns its result.</para>
            <para>This method operates similarly to the <see langword="await"/> C# operator,
            but is meant to be called from a non-<see langword="async"/> method.</para>
            </summary>
            <typeparam name="TResult">The type of the task's result.</typeparam>
            <param name="this">The <see cref="T:System.Threading.Tasks.Task`1"/> on which this method is called.</param>
            <returns>The result of <paramref name="this"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Swan.TaskExtensions.Await(System.Threading.Tasks.Task,System.Boolean)">
            <summary>
            <para>Suspends execution until the specified <see cref="T:System.Threading.Tasks.Task"/> is completed.</para>
            <para>This method operates similarly to the <see langword="await" /> C# operator,
            but is meant to be called from a non-<see langword="async" /> method.</para>
            </summary>
            <param name="this">The <see cref="T:System.Threading.Tasks.Task" /> on which this method is called.</param>
            <param name="continueOnCapturedContext">If set to <see langword="true"/>,
            attempts to marshal the continuation back to the original context captured.
            This parameter has the same effect as calling the <see cref="M:System.Threading.Tasks.Task.ConfigureAwait(System.Boolean)"/>
            method.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Swan.TaskExtensions.Await``1(System.Threading.Tasks.Task{``0},System.Boolean)">
            <summary>
            <para>Suspends execution until the specified <see cref="T:System.Threading.Tasks.Task"/> is completed
            and returns its result.</para>
            <para>This method operates similarly to the <see langword="await"/> C# operator,
            but is meant to be called from a non-<see langword="async"/> method.</para>
            </summary>
            <typeparam name="TResult">The type of the task's result.</typeparam>
            <param name="this">The <see cref="T:System.Threading.Tasks.Task`1"/> on which this method is called.</param>
            <param name="continueOnCapturedContext">If set to <see langword="true"/>,
            attempts to marshal the continuation back to the original context captured.
            This parameter has the same effect as calling the <see cref="M:System.Threading.Tasks.Task.ConfigureAwait(System.Boolean)"/>
            method.</param>
            <returns>The result of <paramref name="this"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="T:Swan.ValueTypeExtensions">
            <summary>
            Provides various extension methods for value types and structs.
            </summary>
        </member>
        <member name="M:Swan.ValueTypeExtensions.Clamp``1(``0,``0,``0)">
            <summary>
            Clamps the specified value between the minimum and the maximum.
            </summary>
            <typeparam name="T">The type of value to clamp.</typeparam>
            <param name="this">The value.</param>
            <param name="min">The minimum.</param>
            <param name="max">The maximum.</param>
            <returns>A value that indicates the relative order of the objects being compared.</returns>
        </member>
        <member name="M:Swan.ValueTypeExtensions.Clamp(System.Int32,System.Int32,System.Int32)">
            <summary>
            Clamps the specified value between the minimum and the maximum.
            </summary>
            <param name="this">The value.</param>
            <param name="min">The minimum.</param>
            <param name="max">The maximum.</param>
            <returns>A value that indicates the relative order of the objects being compared.</returns>
        </member>
        <member name="M:Swan.ValueTypeExtensions.IsBetween``1(``0,``0,``0)">
            <summary>
            Determines whether the specified value is between a minimum and a maximum value.
            </summary>
            <typeparam name="T">The type of value to check.</typeparam>
            <param name="this">The value.</param>
            <param name="min">The minimum.</param>
            <param name="max">The maximum.</param>
            <returns>
              <c>true</c> if the specified minimum is between; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Swan.ValueTypeExtensions.ToStruct``1(System.Byte[])">
            <summary>
            Converts an array of bytes into the given struct type.
            </summary>
            <typeparam name="T">The type of structure to convert.</typeparam>
            <param name="this">The data.</param>
            <returns>a struct type derived from convert an array of bytes ref=ToStruct".</returns>
        </member>
        <member name="M:Swan.ValueTypeExtensions.ToStruct``1(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Converts an array of bytes into the given struct type.
            </summary>
            <typeparam name="T">The type of structure to convert.</typeparam>
            <param name="this">The data.</param>
            <param name="offset">The offset.</param>
            <param name="length">The length.</param>
            <returns>
            A managed object containing the data pointed to by the ptr parameter.
            </returns>
            <exception cref="T:System.ArgumentNullException">data.</exception>
        </member>
        <member name="M:Swan.ValueTypeExtensions.ToBytes``1(``0)">
            <summary>
            Converts a struct to an array of bytes.
            </summary>
            <typeparam name="T">The type of structure to convert.</typeparam>
            <param name="this">The object.</param>
            <returns>A byte array containing the results of encoding the specified set of characters.</returns>
        </member>
        <member name="M:Swan.ValueTypeExtensions.SwapEndianness(System.UInt64)">
            <summary>
            Swaps the endianness of an unsigned long to an unsigned integer.
            </summary>
            <param name="this">The bytes contained in a long.</param>
            <returns>
            A 32-bit unsigned integer equivalent to the ulong 
            contained in longBytes.
            </returns>
        </member>
        <member name="T:Swan.Formatters.CsvReader">
            <summary>
            Represents a reader designed for CSV text.
            It is capable of deserializing objects from individual lines of CSV text,
            transforming CSV lines of text into objects,
            or simply reading the lines of CSV as an array of strings.
            </summary>
            <seealso cref="T:System.IDisposable" /> 
            <example>
            The following example describes how to load a list of objects from a CSV file.
            <code>
            using Swan.Formatters;
             
            class Example
            {
                class Person
                {
                    public string Name { get; set; }
                    public int Age { get; set; }
                }
                
                static void Main()
                {
                    // load records from a CSV file
                   var loadedRecords = 
                   CsvReader.LoadRecords&lt;Person&gt;("C:\\Users\\user\\Documents\\file.csv");
                    
                    // loadedRecords = 
                    //  [
                    //      { Age = 20, Name = "George" }
                    //      { Age = 18, Name = "Juan" }
                    //  ]
                }
            }
            </code>
            The following code explains how to read a CSV formatted string.
            <code>
            using Swan.Formatters;
            using System.Text;
            using Swan.Formatters;
             
            class Example
            {
                static void Main()
                {
                    // data to be read
                    var data = @"Company,OpenPositions,MainTechnology,Revenue
                    Co,2,""C#, MySQL, JavaScript, HTML5 and CSS3"",500
                    Ca,2,""C#, MySQL, JavaScript, HTML5 and CSS3"",600";
                    
                    using(var stream = new MemoryStream(Encoding.UTF8.GetBytes(data)))
                    {
                        // create a CSV reader
                        var reader = new CsvReader(stream, false, Encoding.UTF8);
                    }
                }
            }
            </code>
            </example>
        </member>
        <member name="M:Swan.Formatters.CsvReader.#ctor(System.IO.Stream,System.Boolean,System.Text.Encoding)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.CsvReader" /> class.
            </summary>
            <param name="inputStream">The stream.</param>
            <param name="leaveOpen">if set to <c>true</c> leaves the input stream open.</param>
            <param name="textEncoding">The text encoding.</param>
        </member>
        <member name="M:Swan.Formatters.CsvReader.#ctor(System.IO.Stream,System.Text.Encoding)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.CsvReader"/> class.
            It will automatically close the stream upon disposing.
            </summary>
            <param name="stream">The stream.</param>
            <param name="textEncoding">The text encoding.</param>
        </member>
        <member name="M:Swan.Formatters.CsvReader.#ctor(System.IO.Stream)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.CsvReader"/> class.
            It automatically closes the stream when disposing this reader
            and uses the Windows 1253 encoding.
            </summary>
            <param name="stream">The stream.</param>
        </member>
        <member name="M:Swan.Formatters.CsvReader.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.CsvReader"/> class.
            It uses the Windows 1252 Encoding by default and it automatically closes the file
            when this reader is disposed of.
            </summary>
            <param name="filename">The filename.</param>
        </member>
        <member name="M:Swan.Formatters.CsvReader.#ctor(System.String,System.Text.Encoding)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.CsvReader"/> class.
            It automatically closes the file when disposing this reader.
            </summary>
            <param name="filename">The filename.</param>
            <param name="encoding">The encoding.</param>
        </member>
        <member name="P:Swan.Formatters.CsvReader.Count">
            <summary>
            Gets number of lines that have been read, including the headings.
            </summary>
            <value>
            The count.
            </value>
        </member>
        <member name="P:Swan.Formatters.CsvReader.EscapeCharacter">
            <summary>
            Gets or sets the escape character.
            By default it is the double quote '"'.
            </summary>
            <value>
            The escape character.
            </value>
        </member>
        <member name="P:Swan.Formatters.CsvReader.SeparatorCharacter">
            <summary>
            Gets or sets the separator character.
            By default it is the comma character ','.
            </summary>
            <value>
            The separator character.
            </value>
        </member>
        <member name="P:Swan.Formatters.CsvReader.EndOfStream">
            <summary>
            Gets a value indicating whether the stream reader is at the end of the stream
            In other words, if no more data can be read, this will be set to true.
            </summary>
            <value>
              <c>true</c> if [end of stream]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="M:Swan.Formatters.CsvReader.ReadLine">
            <summary>
            Reads a line of CSV text into an array of strings.
            </summary>
            <returns>An array of the specified element type containing copies of the elements of the ArrayList.</returns>
            <exception cref="T:System.IO.EndOfStreamException">Cannot read past the end of the stream.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvReader.SkipRecord">
            <summary>
            Skips a line of CSV text.
            This operation does not increment the Count property and it is useful when you need to read the headings
            skipping over a few lines as Reading headings is only supported
            as the first read operation (i.e. while count is still 0).
            </summary>
            <exception cref="T:System.IO.EndOfStreamException">Cannot read past the end of the stream.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvReader.ReadHeadings">
            <summary>
            Reads a line of CSV text and stores the values read as a representation of the column names
            to be used for parsing objects. You have to call this method before calling ReadObject methods.
            </summary>
            <returns>An array of the specified element type containing copies of the elements of the ArrayList.</returns>
            <exception cref="T:System.InvalidOperationException">
            Reading headings is only supported as the first read operation.
            or
            ReadHeadings.
            </exception>
            <exception cref="T:System.IO.EndOfStreamException">Cannot read past the end of the stream.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvReader.ReadObject(System.Collections.Generic.IDictionary{System.String,System.String})">
            <summary>
            Reads a line of CSV text, converting it into a dynamic object in which properties correspond to the names of the headings.
            </summary>
            <param name="map">The mappings between CSV headings (keys) and object properties (values).</param>
            <returns>Object of the type of the elements in the collection of key/value pairs.</returns>
            <exception cref="T:System.InvalidOperationException">ReadHeadings.</exception>
            <exception cref="T:System.IO.EndOfStreamException">Cannot read past the end of the stream.</exception>
            <exception cref="T:System.ArgumentNullException">map.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvReader.ReadObject">
            <summary>
            Reads a line of CSV text, converting it into a dynamic object
            The property names correspond to the names of the CSV headings.
            </summary>
            <returns>Object of the type of the elements in the collection of key/value pairs.</returns>
        </member>
        <member name="M:Swan.Formatters.CsvReader.ReadObject``1(System.Collections.Generic.IDictionary{System.String,System.String},``0@)">
            <summary>
            Reads a line of CSV text converting it into an object of the given type, using a map (or Dictionary)
            where the keys are the names of the headings and the values are the names of the instance properties
            in the given Type. The result object must be already instantiated.
            </summary>
            <typeparam name="T">The type of object to map.</typeparam>
            <param name="map">The map.</param>
            <param name="result">The result.</param>
            <exception cref="T:System.ArgumentNullException">map
            or
            result.</exception>
            <exception cref="T:System.InvalidOperationException">ReadHeadings.</exception>
            <exception cref="T:System.IO.EndOfStreamException">Cannot read past the end of the stream.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvReader.ReadObject``1(System.Collections.Generic.IDictionary{System.String,System.String})">
            <summary>
            Reads a line of CSV text converting it into an object of the given type, using a map (or Dictionary)
            where the keys are the names of the headings and the values are the names of the instance properties
            in the given Type.
            </summary>
            <typeparam name="T">The type of object to map.</typeparam>
            <param name="map">The map of CSV headings (keys) and Type property names (values).</param>
            <returns>The conversion of specific type of object.</returns>
            <exception cref="T:System.ArgumentNullException">map.</exception>
            <exception cref="T:System.InvalidOperationException">ReadHeadings.</exception>
            <exception cref="T:System.IO.EndOfStreamException">Cannot read past the end of the stream.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvReader.ReadObject``1">
            <summary>
            Reads a line of CSV text converting it into an object of the given type, and assuming
            the property names of the target type match the heading names of the file.
            </summary>
            <typeparam name="T">The type of object.</typeparam>
            <returns>The conversion of specific type of object.</returns>
        </member>
        <member name="M:Swan.Formatters.CsvReader.ParseRecord(System.IO.StreamReader,System.Char,System.Char)">
            <summary>
            Parses a line of standard CSV text into an array of strings.
            Note that quoted values might have new line sequences in them. Field values will contain such sequences.
            </summary>
            <param name="reader">The reader.</param>
            <param name="escapeCharacter">The escape character.</param>
            <param name="separatorCharacter">The separator character.</param>
            <returns>An array of the specified element type containing copies of the elements of the ArrayList.</returns>
        </member>
        <member name="M:Swan.Formatters.CsvReader.LoadRecords``1(System.IO.Stream)">
            <summary>
            Loads the records from the stream
            This method uses Windows 1252 encoding.
            </summary>
            <typeparam name="T">The type of IList items to load.</typeparam>
            <param name="stream">The stream.</param>
            <returns>A generic collection of objects that can be individually accessed by index.</returns>
        </member>
        <member name="M:Swan.Formatters.CsvReader.LoadRecords``1(System.String)">
            <summary>
            Loads the records from the give file path.
            This method uses Windows 1252 encoding.
            </summary>
            <typeparam name="T">The type of IList items to load.</typeparam>
            <param name="filePath">The file path.</param>
            <returns>A generic collection of objects that can be individually accessed by index.</returns>
        </member>
        <member name="M:Swan.Formatters.CsvReader.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="M:Swan.Formatters.CsvReader.Dispose">
            <inheritdoc />
        </member>
        <member name="T:Swan.Formatters.CsvReader.ReadState">
            <summary>
            Defines the 3 different read states
            for the parsing state machine.
            </summary>
        </member>
        <member name="T:Swan.Formatters.CsvWriter">
            <summary>
            A CSV writer useful for exporting a set of objects.
            </summary>
            <example>
            The following code describes how to save a list of objects into a CSV file.
            <code>
            using System.Collections.Generic;
            using Swan.Formatters;
             
            class Example
            {
                class Person
                {
                    public string Name { get; set; }
                    public int Age { get; set; }
                }
                
                static void Main()
                {
                    // create a list of people 
                    var people = new List&lt;Person&gt;
                    {
                        new Person { Name = "Artyom", Age = 20 },
                        new Person { Name = "Aloy", Age = 18 }
                    }
                    
                    // write items inside file.csv
                    CsvWriter.SaveRecords(people, "C:\\Users\\user\\Documents\\file.csv");
                    
                    // output
                    // | Name   | Age |
                    // | Artyom | 20  |
                    // | Aloy   | 18  |
                }
            }
            </code>
            </example>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.#ctor(System.IO.Stream,System.Boolean,System.Text.Encoding)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.CsvWriter" /> class.
            </summary>
            <param name="outputStream">The output stream.</param>
            <param name="leaveOpen">if set to <c>true</c> [leave open].</param>
            <param name="encoding">The encoding.</param>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.#ctor(System.IO.Stream,System.Text.Encoding)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.CsvWriter"/> class.
            It automatically closes the stream when disposing this writer.
            </summary>
            <param name="outputStream">The output stream.</param>
            <param name="encoding">The encoding.</param>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.#ctor(System.IO.Stream)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.CsvWriter"/> class.
            It uses the Windows 1252 encoding and automatically closes
            the stream upon disposing this writer.
            </summary>
            <param name="outputStream">The output stream.</param>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.CsvWriter"/> class.
            It opens the file given file, automatically closes the stream upon 
            disposing of this writer, and uses the Windows 1252 encoding.
            </summary>
            <param name="filename">The filename.</param>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.#ctor(System.String,System.Text.Encoding)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.CsvWriter"/> class.
            It opens the file given file, automatically closes the stream upon 
            disposing of this writer, and uses the given text encoding for output.
            </summary>
            <param name="filename">The filename.</param>
            <param name="encoding">The encoding.</param>
        </member>
        <member name="P:Swan.Formatters.CsvWriter.SeparatorCharacter">
            <summary>
            Gets or sets the field separator character.
            </summary>
            <value>
            The separator character.
            </value>
        </member>
        <member name="P:Swan.Formatters.CsvWriter.EscapeCharacter">
            <summary>
            Gets or sets the escape character to use to escape field values.
            </summary>
            <value>
            The escape character.
            </value>
        </member>
        <member name="P:Swan.Formatters.CsvWriter.NewLineSequence">
            <summary>
            Gets or sets the new line character sequence to use when writing a line.
            </summary>
            <value>
            The new line sequence.
            </value>
        </member>
        <member name="P:Swan.Formatters.CsvWriter.IgnorePropertyNames">
            <summary>
            Defines a list of properties to ignore when outputting CSV lines.
            </summary>
            <value>
            The ignore property names.
            </value>
        </member>
        <member name="P:Swan.Formatters.CsvWriter.Count">
            <summary>
            Gets number of lines that have been written, including the headings line.
            </summary>
            <value>
            The count.
            </value>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.SaveRecords``1(System.Collections.Generic.IEnumerable{``0},System.IO.Stream,System.Boolean)">
            <summary>
            Saves the items to a stream.
            It uses the Windows 1252 text encoding for output.
            </summary>
            <typeparam name="T">The type of enumeration.</typeparam>
            <param name="items">The items.</param>
            <param name="stream">The stream.</param>
            <param name="truncateData"><c>true</c> if stream is truncated, default <c>false</c>.</param>
            <returns>Number of item saved.</returns>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.SaveRecords``1(System.Collections.Generic.IEnumerable{``0},System.String)">
            <summary>
            Saves the items to a CSV file.
            If the file exits, it overwrites it. If it does not, it creates it.
            It uses the Windows 1252 text encoding for output.
            </summary>
            <typeparam name="T">The type of enumeration.</typeparam>
            <param name="items">The items.</param>
            <param name="filePath">The file path.</param>
            <returns>Number of item saved.</returns>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteLine(System.Object[])">
            <summary>
            Writes a line of CSV text. Items are converted to strings.
            If items are found to be null, empty strings are written out.
            If items are not string, the ToStringInvariant() method is called on them.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteLine(System.Collections.Generic.IEnumerable{System.Object})">
            <summary>
            Writes a line of CSV text. Items are converted to strings.
            If items are found to be null, empty strings are written out.
            If items are not string, the ToStringInvariant() method is called on them.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteLine(System.String[])">
            <summary>
            Writes a line of CSV text.
            If items are found to be null, empty strings are written out.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteLine(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Writes a line of CSV text.
            If items are found to be null, empty strings are written out.
            </summary>
            <param name="items">The items.</param>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteObject(System.Object)">
            <summary>
            Writes a row of CSV text. It handles the special cases where the object is
            a dynamic object or and array. It also handles non-collection objects fine.
            If you do not like the way the output is handled, you can simply write an extension
            method of this class and use the WriteLine method instead.
            </summary>
            <param name="item">The item.</param>
            <exception cref="T:System.ArgumentNullException">item.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteObject``1(``0)">
            <summary>
            Writes a row of CSV text. It handles the special cases where the object is
            a dynamic object or and array. It also handles non-collection objects fine.
            If you do not like the way the output is handled, you can simply write an extension
            method of this class and use the WriteLine method instead.
            </summary>
            <typeparam name="T">The type of object to write.</typeparam>
            <param name="item">The item.</param>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteObjects``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Writes a set of items, one per line and atomically by repeatedly calling the
            WriteObject method. For more info check out the description of the WriteObject
            method.
            </summary>
            <typeparam name="T">The type of object to write.</typeparam>
            <param name="items">The items.</param>
            <exception cref="T:System.ArgumentNullException">items.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteHeadings(System.Type)">
            <summary>
            Writes the headings.
            </summary>
            <param name="type">The type of object to extract headings.</param>
            <exception cref="T:System.ArgumentNullException">type.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteHeadings``1">
            <summary>
            Writes the headings.
            </summary>
            <typeparam name="T">The type of object to extract headings.</typeparam>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteHeadings(System.Collections.IDictionary)">
            <summary>
            Writes the headings.
            </summary>
            <param name="dictionary">The dictionary to extract headings.</param>
            <exception cref="T:System.ArgumentNullException">dictionary.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.WriteHeadings(System.Object)">
            <summary>
            Writes the headings.
            </summary>
            <param name="obj">The object to extract headings.</param>
            <exception cref="T:System.ArgumentNullException">obj.</exception>
        </member>
        <member name="M:Swan.Formatters.CsvWriter.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Swan.Formatters.CsvWriter.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposeAlsoManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:Swan.Formatters.Json">
            <summary>
            A very simple, light-weight JSON library written by Mario
            to teach Geo how things are done
            
            This is an useful helper for small tasks but it doesn't represent a full-featured
            serializer such as the beloved Json.NET.
            </summary>
            <summary>
            A very simple, light-weight JSON library written by Mario
            to teach Geo how things are done
            
            This is an useful helper for small tasks but it doesn't represent a full-featured
            serializer such as the beloved Json.NET.
            </summary>
            <summary>
            A very simple, light-weight JSON library written by Mario
            to teach Geo how things are done
            
            This is an useful helper for small tasks but it doesn't represent a full-featured
            serializer such as the beloved Json.NET.
            </summary>
            <summary>
            A very simple, light-weight JSON library written by Mario
            to teach Geo how things are done
            
            This is an useful helper for small tasks but it doesn't represent a full-featured
            serializer such as the beloved Json.NET.
            </summary>
        </member>
        <member name="M:Swan.Formatters.Json.Serialize(System.Object,System.Boolean,System.String,System.Boolean,System.String[],System.String[])">
            <summary>
            Serializes the specified object into a JSON string.
            </summary>
            <param name="obj">The object.</param>
            <param name="format">if set to <c>true</c> it formats and indents the output.</param>
            <param name="typeSpecifier">The type specifier. Leave null or empty to avoid setting.</param>
            <param name="includeNonPublic">if set to <c>true</c> non-public getters will be also read.</param>
            <param name="includedNames">The included property names.</param>
            <param name="excludedNames">The excluded property names.</param>
            <returns>
            A <see cref="T:System.String" /> that represents the current object.
            </returns>
            <example>
            The following example describes how to serialize a simple object.
            <code>
            using Swan.Formatters;
            
            class Example
            {
                static void Main()
                {
                    var obj = new { One = "One", Two = "Two" };
                    
                    var serial = Json.Serialize(obj); // {"One": "One","Two": "Two"}
                }
            }
            </code>
            
            The following example details how to serialize an object using the <see cref="T:Swan.Formatters.JsonPropertyAttribute"/>.
            
            <code>
            using Swan.Attributes;
            using Swan.Formatters;
            
            class Example
            {
                class JsonPropertyExample
                {
                    [JsonProperty("data")]
                    public string Data { get; set; }
                    
                    [JsonProperty("ignoredData", true)]
                    public string IgnoredData { get; set; }
                }
                
                static void Main()
                {
                    var obj = new JsonPropertyExample() { Data = "OK", IgnoredData = "OK" };
                    
                    // {"data": "OK"}
                    var serializedObj = Json.Serialize(obj);
                }
            }
            </code>
            </example>
        </member>
        <member name="M:Swan.Formatters.Json.Serialize(System.Object,Swan.Formatters.JsonSerializerCase,System.Boolean,System.String)">
            <summary>
            Serializes the specified object into a JSON string.
            </summary>
            <param name="obj">The object.</param>
            <param name="jsonSerializerCase">The json serializer case.</param>
            <param name="format">if set to <c>true</c> [format].</param>
            <param name="typeSpecifier">The type specifier.</param>
            <returns>
            A <see cref="T:System.String" /> that represents the current object.
            </returns>
        </member>
        <member name="M:Swan.Formatters.Json.Serialize(System.Object,System.Boolean,System.String,System.Boolean,System.String[],System.String[],System.Collections.Generic.List{System.WeakReference},Swan.Formatters.JsonSerializerCase)">
            <summary>
            Serializes the specified object into a JSON string.
            </summary>
            <param name="obj">The object.</param>
            <param name="format">if set to <c>true</c> it formats and indents the output.</param>
            <param name="typeSpecifier">The type specifier. Leave null or empty to avoid setting.</param>
            <param name="includeNonPublic">if set to <c>true</c> non-public getters will be also read.</param>
            <param name="includedNames">The included property names.</param>
            <param name="excludedNames">The excluded property names.</param>
            <param name="parentReferences">The parent references.</param>
            <param name="jsonSerializerCase">The json serializer case.</param>
            <returns>
            A <see cref="T:System.String" /> that represents the current object.
            </returns>
        </member>
        <member name="M:Swan.Formatters.Json.Serialize(System.Object,Swan.Formatters.SerializerOptions)">
            <summary>
            Serializes the specified object using the SerializerOptions provided.
            </summary>
            <param name="obj">The object.</param>
            <param name="options">The options.</param>
            <returns>
            A <see cref="T:System.String" /> that represents the current object.
            </returns>
        </member>
        <member name="M:Swan.Formatters.Json.SerializeOnly(System.Object,System.Boolean,System.String[])">
            <summary>
            Serializes the specified object only including the specified property names.
            </summary>
            <param name="obj">The object.</param>
            <param name="format">if set to <c>true</c> it formats and indents the output.</param>
            <param name="includeNames">The include names.</param>
            <returns>A <see cref="T:System.String" /> that represents the current object.</returns>
            <example>
            The following example shows how to serialize a simple object including the specified properties.
            <code>
            using Swan.Formatters;
            
            class Example
            {
                static void Main()
                {
                    // object to serialize
                    var obj = new { One = "One", Two = "Two", Three = "Three" };
                    
                    // the included names
                    var includedNames  = new[] { "Two", "Three" };
                    
                    // serialize only the included names
                    var data = Json.SerializeOnly(basicObject, true, includedNames); 
                    // {"Two": "Two","Three": "Three" }
                }
            }
            </code>
            </example>
        </member>
        <member name="M:Swan.Formatters.Json.SerializeExcluding(System.Object,System.Boolean,System.String[])">
            <summary>
            Serializes the specified object excluding the specified property names.
            </summary>
            <param name="obj">The object.</param>
            <param name="format">if set to <c>true</c> it formats and indents the output.</param>
            <param name="excludeNames">The exclude names.</param>
            <returns>A <see cref="T:System.String" /> that represents the current object.</returns>
            <example>
            The following code shows how to serialize a simple object excluding the specified properties.
            <code>
            using Swan.Formatters;
            
            class Example
            {
                static void Main()
                {
                    // object to serialize
                    var obj = new { One = "One", Two = "Two", Three = "Three" };
                    
                    // the excluded names
                    var excludeNames = new[] { "Two", "Three" };
                    
                    // serialize excluding
                    var data = Json.SerializeExcluding(basicObject, false, includedNames); 
                    // {"One": "One"}
                }
            }
            </code>
            </example>
        </member>
        <member name="M:Swan.Formatters.Json.Deserialize(System.String,Swan.Formatters.JsonSerializerCase)">
            <summary>
            Deserializes the specified json string as either a Dictionary[string, object] or as a List[object]
            depending on the syntax of the JSON string.
            </summary>
            <param name="json">The JSON string.</param>
            <param name="jsonSerializerCase">The json serializer case.</param>
            <returns>
            Type of the current deserializes.
            </returns>
            <example>
            The following code shows how to deserialize a JSON string into a Dictionary.
            <code>
            using Swan.Formatters;
            class Example
            {
            static void Main()
            {
            // json to deserialize
            var basicJson = "{\"One\":\"One\",\"Two\":\"Two\",\"Three\":\"Three\"}";
            // deserializes the specified json into a Dictionary&lt;string, object&gt;.
            var data = Json.Deserialize(basicJson, JsonSerializerCase.None);
            }
            }
            </code></example>
        </member>
        <member name="M:Swan.Formatters.Json.Deserialize(System.String)">
            <summary>
            Deserializes the specified json string as either a Dictionary[string, object] or as a List[object]
            depending on the syntax of the JSON string.
            </summary>
            <param name="json">The JSON string.</param>
            <returns>
            Type of the current deserializes.
            </returns>
            <example>
            The following code shows how to deserialize a JSON string into a Dictionary.
            <code>
            using Swan.Formatters;
            class Example
            {
            static void Main()
            {
            // json to deserialize
            var basicJson = "{\"One\":\"One\",\"Two\":\"Two\",\"Three\":\"Three\"}";
            // deserializes the specified json into a Dictionary&lt;string, object&gt;.
            var data = Json.Deserialize(basicJson);
            }
            }
            </code></example>
        </member>
        <member name="M:Swan.Formatters.Json.Deserialize``1(System.String,Swan.Formatters.JsonSerializerCase)">
            <summary>
            Deserializes the specified JSON string and converts it to the specified object type.
            Non-public constructors and property setters are ignored.
            </summary>
            <typeparam name="T">The type of object to deserialize.</typeparam>
            <param name="json">The JSON string.</param>
            <param name="jsonSerializerCase">The JSON serializer case.</param>
            <returns>
            The deserialized specified type object.
            </returns>
            <example>
            The following code describes how to deserialize a JSON string into an object of type T.
            <code>
            using Swan.Formatters;
            class Example
            {
            static void Main()
            {
            // json type BasicJson to serialize
            var basicJson = "{\"One\":\"One\",\"Two\":\"Two\",\"Three\":\"Three\"}";
            // deserializes the specified string in a new instance of the type BasicJson.
            var data = Json.Deserialize&lt;BasicJson&gt;(basicJson);
            }
            }
            </code></example>
        </member>
        <member name="M:Swan.Formatters.Json.Deserialize``1(System.String,System.Boolean)">
            <summary>
            Deserializes the specified JSON string and converts it to the specified object type.
            </summary>
            <typeparam name="T">The type of object to deserialize.</typeparam>
            <param name="json">The JSON string.</param>
            <param name="includeNonPublic">if set to true, it also uses the non-public constructors and property setters.</param>
            <returns>
            The deserialized specified type object.
            </returns>
        </member>
        <member name="M:Swan.Formatters.Json.Deserialize(System.String,System.Type,System.Boolean,Swan.Formatters.JsonSerializerCase)">
            <summary>
            Deserializes the specified JSON string and converts it to the specified object type.
            </summary>
            <param name="json">The JSON string.</param>
            <param name="resultType">Type of the result.</param>
            <param name="includeNonPublic">if set to true, it also uses the non-public constructors and property setters.</param>
            <param name="jsonSerializerCase">The json serializer case.</param>
            <returns>
            Type of the current conversion from json result.
            </returns>
        </member>
        <member name="T:Swan.Formatters.Json.Deserializer">
            <summary>
            A simple JSON Deserializer.
            </summary>
        </member>
        <member name="T:Swan.Formatters.Json.Deserializer.ReadState">
            <summary>
            Defines the different JSON read states.
            </summary>
        </member>
        <member name="T:Swan.Formatters.Json.Serializer">
            <summary>
            A simple JSON serializer.
            </summary>
        </member>
        <member name="M:Swan.Formatters.Json.Serializer.#ctor(System.Object,System.Int32,Swan.Formatters.SerializerOptions,System.String[])">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.Json.Serializer" /> class.
            </summary>
            <param name="obj">The object.</param>
            <param name="depth">The depth.</param>
            <param name="options">The options.</param>
        </member>
        <member name="M:Swan.Formatters.Json.Serializer.RemoveLastComma">
            <summary>
            Removes the last comma in the current string builder.
            </summary>
        </member>
        <member name="T:Swan.Formatters.SerializerOptions">
            <summary>
            A very simple, light-weight JSON library written by Mario
            to teach Geo how things are done
            
            This is an useful helper for small tasks but it doesn't represent a full-featured
            serializer such as the beloved Json.NET.
            </summary>
        </member>
        <member name="M:Swan.Formatters.SerializerOptions.#ctor(System.Boolean,System.String,System.String[],System.String[],System.Boolean,System.Collections.Generic.IReadOnlyCollection{System.WeakReference},Swan.Formatters.JsonSerializerCase)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.SerializerOptions"/> class.
            </summary>
            <param name="format">if set to <c>true</c> [format].</param>
            <param name="typeSpecifier">The type specifier.</param>
            <param name="includeProperties">The include properties.</param>
            <param name="excludeProperties">The exclude properties.</param>
            <param name="includeNonPublic">if set to <c>true</c> [include non public].</param>
            <param name="parentReferences">The parent references.</param>
            <param name="jsonSerializerCase">The json serializer case.</param>
        </member>
        <member name="P:Swan.Formatters.SerializerOptions.Format">
            <summary>
            Gets a value indicating whether this <see cref="T:Swan.Formatters.SerializerOptions"/> is format.
            </summary>
            <value>
              <c>true</c> if format; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Formatters.SerializerOptions.TypeSpecifier">
            <summary>
            Gets the type specifier.
            </summary>
            <value>
            The type specifier.
            </value>
        </member>
        <member name="P:Swan.Formatters.SerializerOptions.IncludeNonPublic">
            <summary>
            Gets a value indicating whether [include non public].
            </summary>
            <value>
              <c>true</c> if [include non public]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Formatters.SerializerOptions.JsonSerializerCase">
            <summary>
            Gets the json serializer case.
            </summary>
            <value>
            The json serializer case.
            </value>
        </member>
        <member name="P:Swan.Formatters.SerializerOptions.ExcludeProperties">
            <summary>
            Gets or sets the exclude properties.
            </summary>
            <value>
            The exclude properties.
            </value>
        </member>
        <member name="T:Swan.Formatters.JsonPropertyAttribute">
            <summary>
            An attribute used to help setup a property behavior when serialize/deserialize JSON.
            </summary>
            <seealso cref="T:System.Attribute" />
        </member>
        <member name="M:Swan.Formatters.JsonPropertyAttribute.#ctor(System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Formatters.JsonPropertyAttribute" /> class.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="ignored">if set to <c>true</c> [ignored].</param>
        </member>
        <member name="P:Swan.Formatters.JsonPropertyAttribute.PropertyName">
            <summary>
            Gets or sets the name of the property.
            </summary>
            <value>
            The name of the property.
            </value>
        </member>
        <member name="P:Swan.Formatters.JsonPropertyAttribute.Ignored">
            <summary>
            Gets or sets a value indicating whether this <see cref="T:Swan.Formatters.JsonPropertyAttribute" /> is ignored.
            </summary>
            <value>
              <c>true</c> if ignored; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:Swan.Formatters.JsonSerializerCase">
            <summary>
            Enumerates the JSON serializer cases to use: None (keeps the same case), PascalCase, or camelCase.
            </summary>
        </member>
        <member name="F:Swan.Formatters.JsonSerializerCase.None">
            <summary>
            The none
            </summary>
        </member>
        <member name="F:Swan.Formatters.JsonSerializerCase.PascalCase">
            <summary>
            The pascal case (eg. PascalCase)
            </summary>
        </member>
        <member name="F:Swan.Formatters.JsonSerializerCase.CamelCase">
            <summary>
            The camel case (eg. camelCase)
            </summary>
        </member>
        <member name="T:Swan.FromString">
            <summary>
            Provides a standard way to convert strings to different types.
            </summary>
        </member>
        <member name="M:Swan.FromString.CanConvertTo(System.Type)">
            <summary>
            Determines whether a string can be converted to the specified type.
            </summary>
            <param name="type">The type resulting from the conversion.</param>
            <returns><see langword="true" /> if the conversion is possible;
            otherwise, <see langword="false" />.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="type" /> is <see langword="null" />.</exception>
        </member>
        <member name="M:Swan.FromString.CanConvertTo``1">
            <summary>
            Determines whether a string can be converted to the specified type.
            </summary>
            <typeparam name="TResult">The type resulting from the conversion.</typeparam>
            <returns><see langword="true" /> if the conversion is possible;
            otherwise, <see langword="false" />.</returns>
        </member>
        <member name="M:Swan.FromString.TryConvertTo(System.Type,System.String,System.Object@)">
            <summary>
            Attempts to convert a string to the specified type.
            </summary>
            <param name="type">The type resulting from the conversion.</param>
            <param name="str">The string to convert.</param>
            <param name="result">When this method returns <see langword="true" />,
            the result of the conversion. This parameter is passed uninitialized.</param>
            <returns><see langword="true" /> if the conversion is successful;
            otherwise, <see langword="false" />.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="type" /> is <see langword="null" />.</exception>
        </member>
        <member name="M:Swan.FromString.TryConvertTo``1(System.String,``0@)">
            <summary>
            Attempts to convert a string to the specified type.
            </summary>
            <typeparam name="TResult">The type resulting from the conversion.</typeparam>
            <param name="str">The string to convert.</param>
            <param name="result">When this method returns <see langword="true" />,
            the result of the conversion. This parameter is passed uninitialized.</param>
            <returns><see langword="true" /> if the conversion is successful;
            otherwise, <see langword="false" />.</returns>
        </member>
        <member name="M:Swan.FromString.ConvertTo(System.Type,System.String)">
            <summary>
            Converts a string to the specified type.
            </summary>
            <param name="type">The type resulting from the conversion.</param>
            <param name="str">The string to convert.</param>
            <returns>An instance of <paramref name="type" />.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="type" /> is <see langword="null" />.</exception>
            <exception cref="T:Swan.StringConversionException">The conversion was not successful.</exception>
        </member>
        <member name="M:Swan.FromString.ConvertTo``1(System.String)">
            <summary>
            Converts a string to the specified type.
            </summary>
            <typeparam name="TResult">The type resulting from the conversion.</typeparam>
            <param name="str">The string to convert.</param>
            <returns>An instance of <typeparamref name="TResult" />.</returns>
            <exception cref="T:Swan.StringConversionException">
            The conversion was not successful.
            </exception>
        </member>
        <member name="M:Swan.FromString.TryConvertTo(System.Type,System.String[],System.Object@)">
            <summary>
            Attempts to convert an array of strings to an array of the specified type.
            </summary>
            <param name="type">The type resulting from the conversion of each
            element of <paramref name="strings"/>.</param>
            <param name="strings">The array to convert.</param>
            <param name="result">When this method returns <see langword="true" />,
            the result of the conversion. This parameter is passed uninitialized.</param>
            <returns><see langword="true" /> if the conversion is successful;
            otherwise, <see langword="false" />.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="type" /> is <see langword="null" />.</exception>
        </member>
        <member name="M:Swan.FromString.TryConvertTo``1(System.String[],``0[]@)">
            <summary>
            Attempts to convert an array of strings to an array of the specified type.
            </summary>
            <typeparam name="TResult">The type resulting from the conversion of each
            element of <paramref name="strings"/>.</typeparam>
            <param name="strings">The array to convert.</param>
            <param name="result">When this method returns <see langword="true" />,
            the result of the conversion. This parameter is passed uninitialized.</param>
            <returns><see langword="true" /> if the conversion is successful;
            otherwise, <see langword="false" />.</returns>
        </member>
        <member name="M:Swan.FromString.ConvertTo(System.Type,System.String[])">
            <summary>
            Converts an array of strings to an array of the specified type.
            </summary>
            <param name="type">The type resulting from the conversion of each
            element of <paramref name="strings"/>.</param>
            <param name="strings">The array to convert.</param>
            <returns>An array of <paramref name="type" />.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="type" /> is <see langword="null" />.</exception>
            <exception cref="T:Swan.StringConversionException">The conversion of at least one
            of the elements of <paramref name="strings"/>was not successful.</exception>
        </member>
        <member name="M:Swan.FromString.ConvertTo``1(System.String[])">
            <summary>
            Converts an array of strings to an array of the specified type.
            </summary>
            <typeparam name="TResult">The type resulting from the conversion of each
            element of <paramref name="strings"/>.</typeparam>
            <param name="strings">The array to convert.</param>
            <returns>An array of <typeparamref name="TResult" />.</returns>
            <exception cref="T:Swan.StringConversionException">The conversion of at least one
            of the elements of <paramref name="strings"/>was not successful.</exception>
        </member>
        <member name="M:Swan.FromString.ConvertExpressionTo(System.Type,System.Linq.Expressions.Expression)">
            <summary>
            Converts a expression, if the type can be converted to string, to a new expression including
            the conversion to string.
            </summary>
            <param name="type">The type.</param>
            <param name="str">The string.</param>
            <returns>A new expression where the previous expression is converted to string.</returns>
        </member>
        <member name="T:Swan.InternalErrorException">
            <summary>
            <para>The exception that is thrown by methods of the <see cref="T:Swan.SelfCheck"/> class
            to signal a condition most probably caused by an internal error in a library
            or application.</para>
            <para>Do not use this class directly; use the methods of the <see cref="T:Swan.SelfCheck"/> class instead.</para>
            </summary>
        </member>
        <member name="M:Swan.InternalErrorException.#ctor(System.String)">
            <summary>
            <para>Initializes a new instance of the <see cref="T:Swan.InternalErrorException"/> class.</para>
            <para>Do not call this constrcutor directly; use the methods of the <see cref="T:Swan.SelfCheck"/> class instead.</para>
            </summary>
            <param name="message">The message that describes the error.</param>
        </member>
        <member name="M:Swan.InternalErrorException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.InternalErrorException"/> class.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"></see> that contains contextual information about the source or destination.</param>
        </member>
        <member name="T:Swan.Logging.ConsoleLogger">
            <summary>
            Represents a Console implementation of <c>ILogger</c>.
            </summary>
            <seealso cref="T:Swan.Logging.ILogger" />
        </member>
        <member name="M:Swan.Logging.ConsoleLogger.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Logging.ConsoleLogger"/> class.
            </summary>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.Instance">
            <summary>
            Gets the current instance of ConsoleLogger.
            </summary>
            <value>
            The instance.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.DebugPrefix">
            <summary>
            Gets or sets the debug logging prefix.
            </summary>
            <value>
            The debug prefix.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.TracePrefix">
            <summary>
            Gets or sets the trace logging prefix.
            </summary>
            <value>
            The trace prefix.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.WarnPrefix">
            <summary>
            Gets or sets the warning logging prefix.
            </summary>
            <value>
            The warn prefix.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.FatalPrefix">
            <summary>
            Gets or sets the fatal logging prefix.
            </summary>
            <value>
            The fatal prefix.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.ErrorPrefix">
            <summary>
            Gets or sets the error logging prefix.
            </summary>
            <value>
            The error prefix.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.InfoPrefix">
            <summary>
            Gets or sets the information logging prefix.
            </summary>
            <value>
            The information prefix.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.InfoColor">
            <summary>
            Gets or sets the color of the information output logging.
            </summary>
            <value>
            The color of the information.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.DebugColor">
            <summary>
            Gets or sets the color of the debug output logging.
            </summary>
            <value>
            The color of the debug.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.TraceColor">
            <summary>
            Gets or sets the color of the trace output logging.
            </summary>
            <value>
            The color of the trace.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.WarnColor">
            <summary>
            Gets or sets the color of the warning logging.
            </summary>
            <value>
            The color of the warn.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.ErrorColor">
            <summary>
            Gets or sets the color of the error logging.
            </summary>
            <value>
            The color of the error.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.FatalColor">
            <summary>
            Gets or sets the color of the error logging.
            </summary>
            <value>
            The color of the error.
            </value>
        </member>
        <member name="P:Swan.Logging.ConsoleLogger.LogLevel">
            <inheritdoc />
        </member>
        <member name="M:Swan.Logging.ConsoleLogger.Log(Swan.Logging.LogMessageReceivedEventArgs)">
            <inheritdoc />
        </member>
        <member name="M:Swan.Logging.ConsoleLogger.Dispose">
            <inheritdoc />
        </member>
        <member name="T:Swan.Logging.DebugLogger">
            <summary>
            Represents a logger target. This target will write to the
            Debug console using System.Diagnostics.Debug.
            </summary>
            <seealso cref="T:Swan.Logging.ILogger" />
        </member>
        <member name="M:Swan.Logging.DebugLogger.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Logging.DebugLogger"/> class.
            </summary>
        </member>
        <member name="P:Swan.Logging.DebugLogger.Instance">
            <summary>
            Gets the current instance of DebugLogger.
            </summary>
            <value>
            The instance.
            </value>
        </member>
        <member name="P:Swan.Logging.DebugLogger.IsDebuggerAttached">
            <summary>
            Gets a value indicating whether a debugger is attached.
            </summary>
            <value>
              <c>true</c> if this instance is debugger attached; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Logging.DebugLogger.LogLevel">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Logging.DebugLogger.Log(Swan.Logging.LogMessageReceivedEventArgs)">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Logging.DebugLogger.Dispose">
            <inheritdoc/>
        </member>
        <member name="T:Swan.Logging.FileLogger">
            <summary>
            A helper class to write into files the messages sent by the <see cref="T:Swan.Terminal" />.
            </summary>
            <seealso cref="T:Swan.Logging.ILogger" />
        </member>
        <member name="M:Swan.Logging.FileLogger.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Logging.FileLogger"/> class.
            </summary>
        </member>
        <member name="M:Swan.Logging.FileLogger.#ctor(System.String,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Logging.FileLogger"/> class.
            </summary>
            <param name="filePath">The filePath.</param>
            <param name="dailyFile">if set to <c>true</c> [daily file].</param>
        </member>
        <member name="P:Swan.Logging.FileLogger.LogLevel">
            <inheritdoc />
        </member>
        <member name="P:Swan.Logging.FileLogger.FilePath">
            <summary>
            Gets the file path.
            </summary>
            <value>
            The file path.
            </value>
        </member>
        <member name="P:Swan.Logging.FileLogger.DailyFile">
            <summary>
            Gets a value indicating whether [daily file].
            </summary>
            <value>
              <c>true</c> if [daily file]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="M:Swan.Logging.FileLogger.Log(Swan.Logging.LogMessageReceivedEventArgs)">
            <inheritdoc />
        </member>
        <member name="M:Swan.Logging.FileLogger.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Swan.Logging.FileLogger.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:Swan.Logging.ILogger">
            <summary>
            Interface for a logger implementation.
            </summary>
        </member>
        <member name="P:Swan.Logging.ILogger.LogLevel">
            <summary>
            Gets the log level.
            </summary>
            <value>
            The log level.
            </value>
        </member>
        <member name="M:Swan.Logging.ILogger.Log(Swan.Logging.LogMessageReceivedEventArgs)">
            <summary>
            Logs the specified log event.
            </summary>
            <param name="logEvent">The <see cref="T:Swan.Logging.LogMessageReceivedEventArgs"/> instance containing the event data.</param>
        </member>
        <member name="T:Swan.Logging.Logger">
            <summary>
            Entry-point for logging. Use this static class to register/unregister
            loggers instances. By default, the <c>ConsoleLogger</c> is registered.
            </summary>
        </member>
        <member name="M:Swan.Logging.Logger.RegisterLogger``1">
            <summary>
            Registers the logger.
            </summary>
            <typeparam name="T">The type of logger to register.</typeparam>
            <exception cref="T:System.InvalidOperationException">There is already a logger with that class registered.</exception>
        </member>
        <member name="M:Swan.Logging.Logger.RegisterLogger(Swan.Logging.ILogger)">
            <summary>
            Registers the logger.
            </summary>
            <param name="logger">The logger.</param>
        </member>
        <member name="M:Swan.Logging.Logger.UnregisterLogger(Swan.Logging.ILogger)">
            <summary>
            Unregisters the logger.
            </summary>
            <param name="logger">The logger.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">logger.</exception>
        </member>
        <member name="M:Swan.Logging.Logger.UnregisterLogger``1">
            <summary>
            Unregisters the logger.
            </summary>
            <typeparam name="T">The type of logger to unregister.</typeparam>
        </member>
        <member name="M:Swan.Logging.Logger.NoLogging">
            <summary>
            Remove all the loggers.
            </summary>
        </member>
        <member name="M:Swan.Logging.Logger.Debug(System.String,System.String,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs a debug message to the console.
            </summary>
            <param name="message">The message.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Debug(System.String,System.Type,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs a debug message to the console.
            </summary>
            <param name="message">The message.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member.</param>
            <param name="callerFilePath">The caller file path.</param>
            <param name="callerLineNumber">The caller line number.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Debug(System.Exception,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            Logs a debug message to the console.
            </summary>
            <param name="extendedData">The exception.</param>
            <param name="source">The source.</param>
            <param name="message">The message.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Trace(System.String,System.String,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs a trace message to the console.
            </summary>
            <param name="message">The text.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Trace(System.String,System.Type,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs a trace message to the console.
            </summary>
            <param name="message">The message.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member.</param>
            <param name="callerFilePath">The caller file path.</param>
            <param name="callerLineNumber">The caller line number.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Trace(System.Exception,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            Logs a trace message to the console.
            </summary>
            <param name="extendedData">The extended data.</param>
            <param name="source">The source.</param>
            <param name="message">The message.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Warn(System.String,System.String,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs a warning message to the console.
            </summary>
            <param name="message">The text.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Warn(System.String,System.Type,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs a warning message to the console.
            </summary>
            <param name="message">The message.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member.</param>
            <param name="callerFilePath">The caller file path.</param>
            <param name="callerLineNumber">The caller line number.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Warn(System.Exception,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            Logs a warning message to the console.
            </summary>
            <param name="extendedData">The extended data.</param>
            <param name="source">The source.</param>
            <param name="message">The message.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Fatal(System.String,System.String,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs a warning message to the console.
            </summary>
            <param name="message">The text.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Fatal(System.String,System.Type,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs a warning message to the console.
            </summary>
            <param name="message">The message.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member.</param>
            <param name="callerFilePath">The caller file path.</param>
            <param name="callerLineNumber">The caller line number.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Fatal(System.Exception,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            Logs a warning message to the console.
            </summary>
            <param name="extendedData">The extended data.</param>
            <param name="source">The source.</param>
            <param name="message">The message.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Info(System.String,System.String,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs an info message to the console.
            </summary>
            <param name="message">The text.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Info(System.String,System.Type,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs an info message to the console.
            </summary>
            <param name="message">The message.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member.</param>
            <param name="callerFilePath">The caller file path.</param>
            <param name="callerLineNumber">The caller line number.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Info(System.Exception,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            Logs an info message to the console.
            </summary>
            <param name="extendedData">The extended data.</param>
            <param name="source">The source.</param>
            <param name="message">The message.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Error(System.String,System.String,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs an error message to the console's standard error.
            </summary>
            <param name="message">The text.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Error(System.String,System.Type,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs an error message to the console's standard error.
            </summary>
            <param name="message">The message.</param>
            <param name="source">The source.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member.</param>
            <param name="callerFilePath">The caller file path.</param>
            <param name="callerLineNumber">The caller line number.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Error(System.Exception,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            Logs an error message to the console's standard error.
            </summary>
            <param name="ex">The exception.</param>
            <param name="source">The source.</param>
            <param name="message">The message.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Log(System.String,System.String,Swan.Logging.LogLevel,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs the specified message.
            </summary>
            <param name="message">The message.</param>
            <param name="source">The source.</param>
            <param name="messageType">Type of the message.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Log(System.String,System.Type,Swan.Logging.LogLevel,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Logs the specified message.
            </summary>
            <param name="message">The message.</param>
            <param name="source">The source.</param>
            <param name="messageType">Type of the message.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member.</param>
            <param name="callerFilePath">The caller file path.</param>
            <param name="callerLineNumber">The caller line number.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Log(System.Exception,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            Logs an error message to the console's standard error.
            </summary>
            <param name="ex">The ex.</param>
            <param name="source">The source.</param>
            <param name="message">The message.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Log(System.Exception,System.Type,System.String,System.String,System.String,System.Int32)">
            <summary>
            Logs an error message to the console's standard error.
            </summary>
            <param name="ex">The ex.</param>
            <param name="source">The source.</param>
            <param name="message">The message.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Dump(System.Object,System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            Logs a trace message showing all possible non-null properties of the given object
            This method is expensive as it uses Stringify internally.
            </summary>
            <param name="obj">The object.</param>
            <param name="source">The source.</param>
            <param name="text">The title.</param>
            <param name="callerMemberName">Name of the caller member. This is automatically populated.</param>
            <param name="callerFilePath">The caller file path. This is automatically populated.</param>
            <param name="callerLineNumber">The caller line number. This is automatically populated.</param>
        </member>
        <member name="M:Swan.Logging.Logger.Dump(System.Object,System.Type,System.String,System.String,System.String,System.Int32)">
            <summary>
            Logs a trace message showing all possible non-null properties of the given object
            This method is expensive as it uses Stringify internally.
            </summary>
            <param name="obj">The object.</param>
            <param name="source">The source.</param>
            <param name="text">The text.</param>
            <param name="callerMemberName">Name of the caller member.</param>
            <param name="callerFilePath">The caller file path.</param>
            <param name="callerLineNumber">The caller line number.</param>
        </member>
        <member name="T:Swan.Logging.LogLevel">
            <summary>
            Defines the log levels.
            </summary>
        </member>
        <member name="F:Swan.Logging.LogLevel.None">
            <summary>
            The none message type
            </summary>
        </member>
        <member name="F:Swan.Logging.LogLevel.Trace">
            <summary>
            The trace message type
            </summary>
        </member>
        <member name="F:Swan.Logging.LogLevel.Debug">
            <summary>
            The debug message type
            </summary>
        </member>
        <member name="F:Swan.Logging.LogLevel.Info">
            <summary>
            The information message type
            </summary>
        </member>
        <member name="F:Swan.Logging.LogLevel.Warning">
            <summary>
            The warning message type
            </summary>
        </member>
        <member name="F:Swan.Logging.LogLevel.Error">
            <summary>
            The error message type
            </summary>
        </member>
        <member name="F:Swan.Logging.LogLevel.Fatal">
            <summary>
            The fatal message type
            </summary>
        </member>
        <member name="T:Swan.Logging.LogMessageReceivedEventArgs">
            <summary>
            Event arguments representing the message that is logged
            on to the terminal. Use the properties to forward the data to
            your logger of choice.
            </summary>
            <seealso cref="T:System.EventArgs" />
        </member>
        <member name="M:Swan.Logging.LogMessageReceivedEventArgs.#ctor(System.UInt64,Swan.Logging.LogLevel,System.DateTime,System.String,System.String,System.Object,System.String,System.String,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Logging.LogMessageReceivedEventArgs" /> class.
            </summary>
            <param name="sequence">The sequence.</param>
            <param name="messageType">Type of the message.</param>
            <param name="utcDate">The UTC date.</param>
            <param name="source">The source.</param>
            <param name="message">The message.</param>
            <param name="extendedData">The extended data.</param>
            <param name="callerMemberName">Name of the caller member.</param>
            <param name="callerFilePath">The caller file path.</param>
            <param name="callerLineNumber">The caller line number.</param>
        </member>
        <member name="P:Swan.Logging.LogMessageReceivedEventArgs.Sequence">
            <summary>
            Gets logging message sequence.
            </summary>
            <value>
            The sequence.
            </value>
        </member>
        <member name="P:Swan.Logging.LogMessageReceivedEventArgs.MessageType">
            <summary>
            Gets the type of the message.
            It can be a combination as the enumeration is a set of bitwise flags.
            </summary>
            <value>
            The type of the message.
            </value>
        </member>
        <member name="P:Swan.Logging.LogMessageReceivedEventArgs.UtcDate">
            <summary>
            Gets the UTC date at which the event at which the message was logged.
            </summary>
            <value>
            The UTC date.
            </value>
        </member>
        <member name="P:Swan.Logging.LogMessageReceivedEventArgs.Source">
            <summary>
            Gets the name of the source where the logging message
            came from. This can come empty if the logger did not set it.
            </summary>
            <value>
            The source.
            </value>
        </member>
        <member name="P:Swan.Logging.LogMessageReceivedEventArgs.Message">
            <summary>
            Gets the body of the message.
            </summary>
            <value>
            The message.
            </value>
        </member>
        <member name="P:Swan.Logging.LogMessageReceivedEventArgs.CallerMemberName">
            <summary>
            Gets the name of the caller member.
            </summary>
            <value>
            The name of the caller member.
            </value>
        </member>
        <member name="P:Swan.Logging.LogMessageReceivedEventArgs.CallerFilePath">
            <summary>
            Gets the caller file path.
            </summary>
            <value>
            The caller file path.
            </value>
        </member>
        <member name="P:Swan.Logging.LogMessageReceivedEventArgs.CallerLineNumber">
            <summary>
            Gets the caller line number.
            </summary>
            <value>
            The caller line number.
            </value>
        </member>
        <member name="P:Swan.Logging.LogMessageReceivedEventArgs.ExtendedData">
            <summary>
            Gets an object representing extended data.
            It could be an exception or anything else.
            </summary>
            <value>
            The extended data.
            </value>
        </member>
        <member name="P:Swan.Logging.LogMessageReceivedEventArgs.Exception">
            <summary>
            Gets the Extended Data properties cast as an Exception (if possible)
            Otherwise, it return null.
            </summary>
            <value>
            The exception.
            </value>
        </member>
        <member name="T:Swan.Logging.TextLogger">
            <summary>
            Use this class for text-based logger.
            </summary>
        </member>
        <member name="P:Swan.Logging.TextLogger.LoggingTimeFormat">
            <summary>
            Gets or sets the logging time format.
            set to null or empty to prevent output.
            </summary>
            <value>
            The logging time format.
            </value>
        </member>
        <member name="M:Swan.Logging.TextLogger.GetOutputAndColor(Swan.Logging.LogMessageReceivedEventArgs)">
            <summary>
            Gets the color of the output of the message (the output message has a new line char in the end).
            </summary>
            <param name="logEvent">The <see cref="T:Swan.Logging.LogMessageReceivedEventArgs" /> instance containing the event data.</param>
            <returns>
            The output message formatted and the color of the console to be used.
            </returns>
        </member>
        <member name="T:Swan.Mappers.CopyableAttribute">
            <summary>
            Represents an attribute to select which properties are copyable between objects.
            </summary>
            <seealso cref="T:System.Attribute" />
        </member>
        <member name="T:Swan.Mappers.IObjectMap">
            <summary>
            Interface object map.
            </summary>
        </member>
        <member name="P:Swan.Mappers.IObjectMap.Map">
            <summary>
            Gets or sets the map.
            </summary>
        </member>
        <member name="P:Swan.Mappers.IObjectMap.SourceType">
            <summary>
            Gets or sets the type of the source.
            </summary>
        </member>
        <member name="P:Swan.Mappers.IObjectMap.DestinationType">
            <summary>
            Gets or sets the type of the destination.
            </summary>
        </member>
        <member name="T:Swan.Mappers.ObjectMap`2">
            <summary>
            Represents an object map.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <seealso cref="T:Swan.Mappers.IObjectMap" />
        </member>
        <member name="P:Swan.Mappers.ObjectMap`2.Map">
            <inheritdoc/>
        </member>
        <member name="P:Swan.Mappers.ObjectMap`2.SourceType">
            <inheritdoc/>
        </member>
        <member name="P:Swan.Mappers.ObjectMap`2.DestinationType">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Mappers.ObjectMap`2.MapProperty``2(System.Linq.Expressions.Expression{System.Func{`1,``0}},System.Linq.Expressions.Expression{System.Func{`0,``1}})">
            <summary>
            Maps the property.
            </summary>
            <typeparam name="TDestinationProperty">The type of the destination property.</typeparam>
            <typeparam name="TSourceProperty">The type of the source property.</typeparam>
            <param name="destinationProperty">The destination property.</param>
            <param name="sourceProperty">The source property.</param>
            <returns>
            An object map representation of type of the destination property 
            and type of the source property.
            </returns>
        </member>
        <member name="M:Swan.Mappers.ObjectMap`2.RemoveMapProperty``1(System.Linq.Expressions.Expression{System.Func{`1,``0}})">
            <summary>
            Removes the map property.
            </summary>
            <typeparam name="TDestinationProperty">The type of the destination property.</typeparam>
            <param name="destinationProperty">The destination property.</param>
            <returns>
            An object map representation of type of the destination property 
            and type of the source property. 
            </returns>
            <exception cref="T:System.Exception">Invalid destination expression.</exception>
        </member>
        <member name="T:Swan.Mappers.ObjectMapper">
            <summary>
            Represents an AutoMapper-like object to map from one object type
            to another using defined properties map or using the default behaviour
            to copy same named properties from one object to another.
            
            The extension methods like CopyPropertiesTo use the default behaviour.
            </summary>
            <example>
            The following code explains how to map an object's properties into an instance of type T. 
            <code>
            using Swan.Mappers;
            
            class Example
            {
                class Person
                {
                    public string Name { get; set; }
                    public int Age { get; set; }
                }
                
                static void Main()
                {
                    var obj = new { Name = "John", Age = 42 };
                    
                    var person = Runtime.ObjectMapper.Map&lt;Person&gt;(obj);
                }
            }
            </code>
            
            The following code explains how to explicitly map certain properties.
            <code>
            using Swan.Mappers;
            
            class Example
            {
                class User
                {
                    public string Name { get; set; }
                    public Role Role { get; set; }
                }
                
                public class Role
                {
                    public string Name { get; set; }
                }
                
                class UserDto
                {
                    public string Name { get; set; }
                    public string Role { get; set; }
                }
                
                static void Main()
                {
                    // create a User object
                    var person = 
                        new User { Name = "Phillip", Role = new Role { Name = "Admin" } };
                    
                    // create an Object Mapper
                    var mapper = new ObjectMapper();
                    
                    // map the User's Role.Name to UserDto's Role
                    mapper.CreateMap&lt;User, UserDto&gt;()
                        .MapProperty(d => d.Role, x => x.Role.Name);
                    
                    // apply the previous map and retrieve a UserDto object
                    var destination = mapper.Map&lt;UserDto&gt;(person);
                }
            }
            </code>
            </example>
            <summary>
            Represents an AutoMapper-like object to map from one object type
            to another using defined properties map or using the default behaviour
            to copy same named properties from one object to another.
            
            The extension methods like CopyPropertiesTo use the default behaviour.
            </summary>
        </member>
        <member name="P:Swan.Mappers.ObjectMapper.Current">
            <summary>
            Gets the current.
            </summary>
            <value>
            The current.
            </value>
        </member>
        <member name="M:Swan.Mappers.ObjectMapper.Copy(System.Object,System.Object,System.Collections.Generic.IEnumerable{System.String},System.String[])">
            <summary>
            Copies the specified source.
            </summary>
            <param name="source">The source.</param>
            <param name="target">The target.</param>
            <param name="propertiesToCopy">The properties to copy.</param>
            <param name="ignoreProperties">The ignore properties.</param>
            <returns>
            Copied properties count.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            target.
            </exception>
        </member>
        <member name="M:Swan.Mappers.ObjectMapper.Copy(System.Collections.Generic.IDictionary{System.String,System.Object},System.Object,System.Collections.Generic.IEnumerable{System.String},System.String[])">
            <summary>
            Copies the specified source.
            </summary>
            <param name="source">The source.</param>
            <param name="target">The target.</param>
            <param name="propertiesToCopy">The properties to copy.</param>
            <param name="ignoreProperties">The ignore properties.</param>
            <returns>
            Copied properties count.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            source
            or
            target.
            </exception>
        </member>
        <member name="M:Swan.Mappers.ObjectMapper.CreateMap``2">
            <summary>
            Creates the map.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <returns>
            An object map representation of type of the destination property 
            and type of the source property.
            </returns>
            <exception cref="T:System.InvalidOperationException">
            You can't create an existing map
            or
            Types doesn't match.
            </exception>
        </member>
        <member name="M:Swan.Mappers.ObjectMapper.Map``1(System.Object,System.Boolean)">
            <summary>
            Maps the specified source.
            </summary>
            <typeparam name="TDestination">The type of the destination.</typeparam>
            <param name="source">The source.</param>
            <param name="autoResolve">if set to <c>true</c> [automatic resolve].</param>
            <returns>
            A new instance of the map.
            </returns>
            <exception cref="T:System.ArgumentNullException">source.</exception>
            <exception cref="T:System.InvalidOperationException">You can't map from type {source.GetType().Name} to {typeof(TDestination).Name}.</exception>
        </member>
        <member name="T:Swan.Net.IPAddressRange">
            <summary>
            Represents an inclusive range of IP addresses.
            </summary>
            <remarks>
            <para>This class makes no distinction between IPv4 addresses and the same addresses mapped to IPv6
            for the purpose of determining whether it belongs to a range: that is, the <see cref="M:Swan.Net.IPAddressRange.Contains(System.Net.IPAddress)"/> method
            of an instance initialized with IPv4 addresses, or with the same addresses mapped to IPv6,
            will return <see langword="true"/> for both an in-range IPv4 address and the same address mapped to IPv6.</para>
            <para>The <see cref="M:Swan.Net.IPAddressRange.#ctor(System.Net.IPAddress,System.Net.IPAddress)"/> constructor, however,
            does make such distinction: you cannot initialize a range using an IPv4 address and an IPv6 address,
            even if the latter is an IPv4 address mapped to IPv6, nor the other way around.</para>
            </remarks>
            <seealso cref="T:System.IEquatable`1" />
        </member>
        <member name="F:Swan.Net.IPAddressRange.None">
            <summary>
            <para>Gets an instance of <see cref="T:Swan.Net.IPAddressRange"/> that contains no addresses.</para>
            <para>The <see cref="M:Swan.Net.IPAddressRange.Contains(System.Net.IPAddress)"/> method of the returned instance will always return <see langword="false"/>.</para>
            <para>This property is useful to initialize non-nullable properties 
            of type <see cref="T:Swan.Net.IPAddressRange"/>.</para>
            </summary>
        </member>
        <member name="F:Swan.Net.IPAddressRange.All">
            <summary>
            <para>Gets an instance of <see cref="T:Swan.Net.IPAddressRange"/> that contains all possible IP addresses.</para>
            <para>The <see cref="M:Swan.Net.IPAddressRange.Contains(System.Net.IPAddress)"/> method of the returned instance will always return <see langword="true"/>.</para>
            </summary>
        </member>
        <member name="F:Swan.Net.IPAddressRange.AllIPv4">
            <summary>
            <para>Gets an instance of <see cref="T:Swan.Net.IPAddressRange"/> that contains all IPv4 addresses.</para>
            <para>The <see cref="M:Swan.Net.IPAddressRange.Contains(System.Net.IPAddress)"/> method of the returned instance will return <see langword="true"/>
            for all IPv4 addresses, as well as their IPv6 mapped counterparts, and <see langword="false"/>
            for all other IPv6 addresses.</para>
            </summary>
        </member>
        <member name="M:Swan.Net.IPAddressRange.#ctor(System.Net.IPAddress)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Net.IPAddressRange"/> class,
            representing a single IP address.
            </summary>
            <param name="address">The IP address.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="address"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Swan.Net.IPAddressRange.#ctor(System.Net.IPAddress,System.Net.IPAddress)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Net.IPAddressRange"/> class,
            representing a range of IP addresses between <paramref name="start"/>
            and <paramref name="end"/>, extremes included.
            </summary>
            <param name="start">The starting address of the range.</param>
            <param name="end">The ending address of the range.</param>
            <exception cref="T:System.ArgumentNullException">
            <para><paramref name="start"/> is <see langword="null"/>.</para>
            <para>- or -</para>
            <para><paramref name="end"/> is <see langword="null"/>.</para>
            </exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="end"/> has a different <see cref="P:System.Net.IPAddress.AddressFamily">AddressFamily</see>
            from <paramref name="start"/>.</para>
            <para>- or -</para>
            <para><paramref name="end"/> is a lower address than <paramref name="start"/>,
            i.e. the binary representation of <paramref name="end"/> in network byte order
            is a lower number than the same representation of <paramref name="start"/>.</para>
            </exception>
        </member>
        <member name="M:Swan.Net.IPAddressRange.#ctor(System.Net.IPAddress,System.Byte)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Net.IPAddressRange"/> class,
            representing a CIDR subnet.
            </summary>
            <param name="baseAddress">The base address of the subnet.</param>
            <param name="prefixLength">The prefix length of the subnet.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="baseAddress"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">
            <para><paramref name="prefixLength"/> is zero.</para>
            <para>- or -</para>
            <para><paramref name="prefixLength"/> is greater than the number of bits in
            the binary representation of <paramref name="baseAddress"/> (32 for IPv4 addresses,
            128 for IPv6 addresses.)</para>
            <para>- or -</para>
            <para><paramref name="baseAddress"/> cannot be the base address of a subnet with a prefix length
            equal to <paramref name="prefixLength"/>, because the remaining bits after the prefix
            are not all zeros.</para>
            </exception>
        </member>
        <member name="P:Swan.Net.IPAddressRange.AddressFamily">
            <summary>
            Gets the address family of the IP address range.
            </summary>
            <remarks>
            <para>Regardless of the value of this property, IPv4 addresses
            and their IPv6 mapped counterparts will be considered the same
            for the purposes of the <see cref="M:Swan.Net.IPAddressRange.Contains(System.Net.IPAddress)"/> method.</para>
            </remarks>
        </member>
        <member name="P:Swan.Net.IPAddressRange.IsSubnet">
            <summary>
            Gets a value indicating whether this instance represents a CIDR subnet.
            </summary>
            <remarks>
            <para>This property is <see langword="true"/> only for instances
            initialized via the <see cref="M:Swan.Net.IPAddressRange.#ctor(System.Net.IPAddress,System.Byte)"/> constructor.
            Instances constructed by specifying a range will have this property
            set to <see langword="false"/> even when they actually represent a subnet.</para>
            <para>For example, the instance returned by <c>IPAddressRange.Parse("192.168.0.0-192.168.0.255")</c>
            will have this property set to <see langword="false"/>; for this property to be <see langword="true"/>,
            the string passed to <see cref="M:Swan.Net.IPAddressRange.Parse(System.String)"/> should instead be <c>"192.168.0.0/24"</c>
            (a CIDR subnet specification) or "192.168.0.0/255.255.255.0" (a base address / netmask pair,
            only accepted by <see cref="M:Swan.Net.IPAddressRange.Parse(System.String)"/> and <see cref="M:Swan.Net.IPAddressRange.TryParse(System.String,Swan.Net.IPAddressRange@)"/> for IPv4 addresses.)</para>
            </remarks>
        </member>
        <member name="P:Swan.Net.IPAddressRange.Start">
            <summary>
            Gets an instance of <see cref="T:System.Net.IPAddress"/> representing
            the first address in the range.
            </summary>
        </member>
        <member name="P:Swan.Net.IPAddressRange.End">
            <summary>
            Gets an instance of <see cref="T:System.Net.IPAddress"/> representing
            the last address in the range.
            </summary>
        </member>
        <member name="M:Swan.Net.IPAddressRange.TryParse(System.String,Swan.Net.IPAddressRange@)">
            <summary>
            Tries to convert the string representation of a range of IP addresses
            to an instance of <see cref="T:Swan.Net.IPAddressRange"/>.
            </summary>
            <param name="str">The string to convert.</param>
            <param name="result">When this method returns <see langword="true"/>,
            an instance of <see cref="T:Swan.Net.IPAddressRange"/> representing the same range of
            IP addresses represented by <paramref name="str"/>.</param>
            <returns><see langword="true"/> if the conversion was successful;
            otherwise, <see langword="false"/>.</returns>
            <remarks>See the "Remarks" section of <see cref="M:Swan.Net.IPAddressRange.Parse(System.String)"/>
            for an overview of the formats accepted for <paramref name="str"/>.</remarks>
            <seealso cref="M:Swan.Net.IPAddressRange.Parse(System.String)"/>
        </member>
        <member name="M:Swan.Net.IPAddressRange.Parse(System.String)">
            <summary>
            Converts the string representation of a range of IP addresses
            to an instance of <see cref="T:Swan.Net.IPAddressRange"/>.
            </summary>
            <param name="str">The string to convert.</param>
            <returns>An instance of <see cref="T:Swan.Net.IPAddressRange"/> representing the same range of
            IP addresses represented by <paramref name="str"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="str"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.FormatException"><paramref name="str"/> is in none of the supported formats.</exception>
            <remarks>
            <para>This method supports the following formats for <paramref name="str"/>:</para>
            <list type="table">
              <listheader>
                <term>Format</term>
                <term>Description</term>
                <term>Examples</term>
              </listheader>
              <item>
                <term>Single address</term>
                <term>A single IP address.</term>
                <term>
                  <para><c>192.168.23.199</c></para>
                  <para><c>2001:db8:a0b:12f0::1</c></para>
                </term>
              </item>
              <item>
                <term>Range of addresses</term>
                <term>Start and end address, separated by a hyphen (<c>-</c>).</term>
                <term>
                  <para><c>192.168.0.100-192.168.11.255</c></para>
                  <para><c>2001:db8:a0b:12f0::-2001:db8:a0b:12f0::ffff</c></para>
                </term>
              </item>
              <item>
                <term>CIDR subnet</term>
                <term>Base address and prefix length, separated by a slash (<c>/</c>).</term>
                <term>
                  <para><c>169.254.0.0/16</c></para>
                  <para><c>192.168.123.0/24</c></para>
                  <para><c>2001:db8:a0b:12f0::/64</c></para>
                </term>
              </item>
              <item>
                <term>"Legacy" subnet</term>
                <term>
                  <para>Base address and netmask, separated by a slash (<c>/</c>).</para>
                  <para>Only accepted for IPv4 addresses.</para>
                </term>
                <term>
                  <para><c>169.254.0.0/255.255.0.0</c></para>
                  <para><c>192.168.123.0/255.255.255.0</c></para>
                </term>
              </item>
            </list>
            </remarks>
            <seealso cref="M:Swan.Net.IPAddressRange.TryParse(System.String,Swan.Net.IPAddressRange@)"/>
        </member>
        <member name="M:Swan.Net.IPAddressRange.ToString">
            <inheritdoc/>
            <remarks>
            <para>The result of this method will be a string that,
            if passed to the <see cref="M:Swan.Net.IPAddressRange.Parse(System.String)"/> or <see cref="M:Swan.Net.IPAddressRange.TryParse(System.String,Swan.Net.IPAddressRange@)"/> method,
            will result in an instance identical to this one.</para>
            <para>If this instance has been created by means of the <see cref="M:Swan.Net.IPAddressRange.Parse(System.String)"/>
            or <see cref="M:Swan.Net.IPAddressRange.TryParse(System.String,Swan.Net.IPAddressRange@)"/> method, the returned string will not
            necessarily be identical to the parsed string. The possible differences
            include the following:</para>
            <list type="bullet">
              <item>ranges consisting of just one IP address will result in a
              string representing that single address;</item>
              <item>addresses in the returned string are passed to the
              <see cref="M:System.Net.IPAddress.ToString"/> method, resulting in standardized
              representations that may be different from the originally parsed
              strings;</item>
              <item>the returned string will contain no blank characters;</item>
              <item>address ranges parsed as <c>address/netmask</c> will be
              rendered as CIDR subnets: for example,
              <c>IPAddressRange.Parse("192.168.19.0/255.255.255.0").ToString()</c>
              will return <c>"192.168.19.0/24"</c>.</item>
            </list>
            </remarks>
        </member>
        <member name="M:Swan.Net.IPAddressRange.Contains(System.Net.IPAddress)">
            <summary>
            Determines whether the given <paramref name="address"/>
            sa contained in this range.
            </summary>
            <param name="address">The IP address to check.</param>
            <returns><see langword="true"/> if <paramref name="address"/>
            is between <see cref="P:Swan.Net.IPAddressRange.Start"/> and <see cref="P:Swan.Net.IPAddressRange.End"/>, inclusive;
            otherwise, <see lamgword="false"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="address"/> is <see langword="null"/>.</exception>
            <remarks>
            <para>This method treats IPv4 addresses and their IPv6-mapped counterparts
            the same; that is, given a range obtained by parsing the string <c>192.168.1.0/24</c>,
            <c>Contains(IPAddress.Parse("192.168.1.55"))</c> will return <see langword="true"/>,
            as will <c>Contains(IPAddress.Parse("192.168.1.55").MapToIPv6())</c>. This is true
            as well if a range is initialized with IPv6 addresses.</para>
            </remarks>
        </member>
        <member name="M:Swan.Net.IPAddressRange.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Net.IPAddressRange.Equals(Swan.Net.IPAddressRange)">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Net.IPAddressRange.GetHashCode">
            <inheritdoc />
        </member>
        <member name="T:Swan.Net.IPAddressRangeExtensions">
            <summary>
            Provides extension methods for instances and collections of <see cref="T:Swan.Net.IPAddressRange"/>.
            </summary>
        </member>
        <member name="M:Swan.Net.IPAddressRangeExtensions.AnyContains(System.Collections.Generic.IEnumerable{Swan.Net.IPAddressRange},System.Net.IPAddress)">
            <summary>
            Determines whether any element of a sequence of <see cref="T:Swan.Net.IPAddressRange"/> instances
            contains the given <paramref name="address"/>.
            </summary>
            <param name="this">The <see cref="T:System.Collections.Generic.IEnumerable`1">IEnumerable&lt;IPAddressRange&gt;</see> interface
            on which this method is called.</param>
            <param name="address">The <see cref="T:System.Net.IPAddress"/> to look for.</param>
            <returns><see langword="true"/> if any of the ranges in <paramref name="this"/>
            contains <paramref name="address"/>; otherwise, <see langword="false"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Swan.Net.IPAddressRangeExtensions.NoneContains(System.Collections.Generic.IEnumerable{Swan.Net.IPAddressRange},System.Net.IPAddress)">
            <summary>
            Determines whether no element of a sequence of <see cref="T:Swan.Net.IPAddressRange"/> instances
            contains the given <paramref name="address"/>.
            </summary>
            <param name="this">The <see cref="T:System.Collections.Generic.IEnumerable`1">IEnumerable&lt;IPAddressRange&gt;</see> interface
            on which this method is called.</param>
            <param name="address">The <see cref="T:System.Net.IPAddress"/> to look for.</param>
            <returns><see langword="true"/> if none of the ranges in <paramref name="this"/>
            contains <paramref name="address"/>; otherwise, <see langword="false"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="this"/> is <see langword="null"/>.</exception>
        </member>
        <member name="T:Swan.Net.IPAddressUtility">
            <summary>
            Provides utility methods to work with the <see cref="T:System.Net.IPAddress"/> class.
            </summary>
        </member>
        <member name="M:Swan.Net.IPAddressUtility.TryParse(System.String,System.Net.IPAddress@)">
            <summary>
            <para>Tries to convert the string representation of an IP address
            into an instance of <see cref="T:System.Net.IPAddress"/></para>
            <para>This method works the same way as <see cref="M:System.Net.IPAddress.TryParse(System.String,System.Net.IPAddress@)"/>,
            with the exception that it will not recognize a decimal number alone
            as an IPv4 address.</para>
            </summary>
            <param name="str">The string to be converted.</param>
            <param name="address">When this method returns <see langword="true"/>,
            an instance of <see cref="T:System.Net.IPAddress"/> representing the same address
            as <paramref name="str"/>.</param>
            <returns><see langword="true"/> if the conversion was successful;
            otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="T:Swan.ObjectComparer">
            <summary>
            Represents a quick object comparer using the public properties of an object
            or the public members in a structure.
            </summary>
        </member>
        <member name="M:Swan.ObjectComparer.AreEqual``1(``0,``0)">
            <summary>
            Compare if two variables of the same type are equal.
            </summary>
            <typeparam name="T">The type of objects to compare.</typeparam>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <returns><c>true</c> if the variables are equal; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Swan.ObjectComparer.AreEqual(System.Object,System.Object,System.Type)">
            <summary>
            Compare if two variables of the same type are equal.
            </summary>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <param name="targetType">Type of the target.</param>
            <returns>
              <c>true</c> if the variables are equal; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">targetType.</exception>
        </member>
        <member name="M:Swan.ObjectComparer.AreObjectsEqual``1(``0,``0)">
            <summary>
            Compare if two objects of the same type are equal.
            </summary>
            <typeparam name="T">The type of objects to compare.</typeparam>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <returns><c>true</c> if the objects are equal; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Swan.ObjectComparer.AreObjectsEqual(System.Object,System.Object,System.Type)">
            <summary>
            Compare if two objects of the same type are equal.
            </summary>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <param name="targetType">Type of the target.</param>
            <returns><c>true</c> if the objects are equal; otherwise, <c>false</c>.</returns>
            <exception cref="T:System.ArgumentNullException">targetType.</exception>
        </member>
        <member name="M:Swan.ObjectComparer.AreStructsEqual``1(``0,``0)">
            <summary>
            Compare if two structures of the same type are equal.
            </summary>
            <typeparam name="T">The type of structs to compare.</typeparam>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <returns><c>true</c> if the structs are equal; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Swan.ObjectComparer.AreStructsEqual(System.Object,System.Object,System.Type)">
            <summary>
            Compare if two structures of the same type are equal.
            </summary>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <param name="targetType">Type of the target.</param>
            <returns>
              <c>true</c> if the structs are equal; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">targetType.</exception>
        </member>
        <member name="M:Swan.ObjectComparer.AreEnumerationsEquals``1(``0,``0)">
            <summary>
            Compare if two enumerables are equal.
            </summary>
            <typeparam name="T">The type of enums to compare.</typeparam>
            <param name="left">The left.</param>
            <param name="right">The right.</param>
            <returns>
            <c>true</c> if two specified types are equal; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            left
            or
            right.
            </exception>
        </member>
        <member name="T:Swan.Paginator">
            <summary>
            A utility class to compute paging or batching offsets.
            </summary>
        </member>
        <member name="M:Swan.Paginator.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Paginator" /> class.
            </summary>
            <param name="totalCount">The total count of items to page over.</param>
            <param name="pageSize">The desired size of individual pages.</param>
        </member>
        <member name="P:Swan.Paginator.PageSize">
            <summary>
            Gets the desired number of items per page.
            </summary>
        </member>
        <member name="P:Swan.Paginator.TotalCount">
            <summary>
            Gets the total number of items to page over.
            </summary>
        </member>
        <member name="P:Swan.Paginator.PageCount">
            <summary>
            Gets the computed number of pages.
            </summary>
        </member>
        <member name="M:Swan.Paginator.GetFirstItemIndex(System.Int32)">
            <summary>
            Gets the start item index of the given page.
            </summary>
            <param name="pageIndex">Zero-based index of the page.</param>
            <returns>The start item index.</returns>
        </member>
        <member name="M:Swan.Paginator.GetLastItemIndex(System.Int32)">
            <summary>
            Gets the end item index of the given page.
            </summary>
            <param name="pageIndex">Zero-based index of the page.</param>
            <returns>The end item index.</returns>
        </member>
        <member name="M:Swan.Paginator.GetItemCount(System.Int32)">
            <summary>
            Gets the item count of the given page index.
            </summary>
            <param name="pageIndex">Zero-based index of the page.</param>
            <returns>The number of items that the page contains.</returns>
        </member>
        <member name="M:Swan.Paginator.FixPageIndex(System.Int32)">
            <summary>
            Fixes the index of the page by applying bound logic.
            </summary>
            <param name="pageIndex">Index of the page.</param>
            <returns>A limit-bound index.</returns>
        </member>
        <member name="M:Swan.Paginator.ComputePageCount">
            <summary>
            Computes the number of pages for the paginator.
            </summary>
            <returns>The page count.</returns>
        </member>
        <member name="T:Swan.Parsers.ArgumentOptionAttribute">
            <summary>
            Models an option specification.
            Based on CommandLine (Copyright 2005-2015 Giacomo Stelluti Scala and Contributors.).
            </summary>
        </member>
        <member name="M:Swan.Parsers.ArgumentOptionAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Parsers.ArgumentOptionAttribute"/> class.
            </summary>
            <param name="longName">The long name of the option.</param>
        </member>
        <member name="M:Swan.Parsers.ArgumentOptionAttribute.#ctor(System.Char,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Parsers.ArgumentOptionAttribute"/> class.
            </summary>
            <param name="shortName">The short name of the option.</param>
            <param name="longName">The long name of the option or null if not used.</param>
        </member>
        <member name="M:Swan.Parsers.ArgumentOptionAttribute.#ctor(System.Char)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Parsers.ArgumentOptionAttribute"/> class.
            </summary>
            <param name="shortName">The short name of the option..</param>
        </member>
        <member name="P:Swan.Parsers.ArgumentOptionAttribute.LongName">
            <summary>
            Gets long name of this command line option. This name is usually a single English word.
            </summary>
            <value>
            The long name.
            </value>
        </member>
        <member name="P:Swan.Parsers.ArgumentOptionAttribute.ShortName">
            <summary>
            Gets a short name of this command line option, made of one character.
            </summary>
            <value>
            The short name.
            </value>
        </member>
        <member name="P:Swan.Parsers.ArgumentOptionAttribute.Separator">
            <summary>
            When applying attribute to <see cref="T:System.Collections.Generic.IEnumerable`1"/> target properties,
            it allows you to split an argument and consume its content as a sequence.
            </summary>
        </member>
        <member name="P:Swan.Parsers.ArgumentOptionAttribute.DefaultValue">
            <summary>
            Gets or sets mapped property default value.
            </summary>
            <value>
            The default value.
            </value>
        </member>
        <member name="P:Swan.Parsers.ArgumentOptionAttribute.Required">
            <summary>
            Gets or sets a value indicating whether a command line option is required.
            </summary>
            <value>
              <c>true</c> if required; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Parsers.ArgumentOptionAttribute.HelpText">
            <summary>
            Gets or sets a short description of this command line option. Usually a sentence summary.
            </summary>
            <value>
            The help text.
            </value>
        </member>
        <member name="P:Swan.Parsers.ArgumentOptionAttribute.IsDefault">
            <summary>
            Gets or sets the default argument.
            </summary>
            <value>
            The default argument.
            </value>
        </member>
        <member name="T:Swan.Parsers.ArgumentParser">
            <summary>
            Provides methods to parse command line arguments.
            
            Based on CommandLine (Copyright 2005-2015 Giacomo Stelluti Scala and Contributors).
            </summary>
             <summary>
             Provides methods to parse command line arguments.
             Based on CommandLine (Copyright 2005-2015 Giacomo Stelluti Scala and Contributors.).
             </summary>
             <example>
             The following example shows how to parse CLI arguments into objects.
             <code>
             class Example 
             {
                 using System;
                 using Swan.Parsers;
                 
                 static void Main(string[] args)
                 {
                     // parse the supplied command-line arguments into the options object
                     var res = Runtime.ArgumentParser.ParseArguments(args, out var options);
                 }
                 
                 class Options
                 {
                     [ArgumentOption('v', "verbose", HelpText = "Set verbose mode.")]
                     public bool Verbose { get; set; }
            
                     [ArgumentOption('u', Required = true, HelpText = "Set user name.")]
                     public string Username { get; set; }
            
                     [ArgumentOption('n', "names", Separator = ',',
                     Required = true, HelpText = "A list of files separated by a comma")]
                     public string[] Files { get; set; }
                     
                     [ArgumentOption('p', "port", DefaultValue = 22, HelpText = "Set port.")]
                     public int Port { get; set; }
            
                     [ArgumentOption("color", DefaultValue = ConsoleColor.Red,
                     HelpText = "Set a color.")]
                     public ConsoleColor Color { get; set; }
                 }
             }
             </code>
             The following code describes how to parse CLI verbs.
             <code>
             class Example2 
             {
                 using Swan;
                 using Swan.Parsers;
                 
                 static void Main(string[] args)
                 {
                     // create an instance of the VerbOptions class
                     var options = new VerbOptions();
                     
                     // parse the supplied command-line arguments into the options object
                     var res = Runtime.ArgumentParser.ParseArguments(args, options);
                     
                     // if there were no errors parsing
                     if (res)
                     {
                         if(options.Run != null)
                         {
                             // run verb was selected
                         }
                         
                         if(options.Print != null)
                         {
                             // print verb was selected
                         }
                     }
                     
                     // flush all error messages
                     Terminal.Flush();
                 }
                 
                 class VerbOptions
                 {
                     [VerbOption("run", HelpText = "Run verb.")]
                     public RunVerbOption Run { get; set; }
                     
                     [VerbOption("print", HelpText = "Print verb.")]
                     public PrintVerbOption Print { get; set; }
                 }
                 
                 class RunVerbOption
                 {
                     [ArgumentOption('o', "outdir", HelpText = "Output directory",
                     DefaultValue = "", Required = false)]
                     public string OutDir { get; set; }
                 }
                 
                 class PrintVerbOption
                 {
                     [ArgumentOption('t', "text", HelpText = "Text to print",
                     DefaultValue = "", Required = false)]
                     public string Text { get; set; }
                 }
             }
             </code>
             </example>
            <summary>
            Provides methods to parse command line arguments.
            </summary>
        </member>
        <member name="M:Swan.Parsers.ArgumentParser.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Parsers.ArgumentParser"/> class.
            </summary>
        </member>
        <member name="M:Swan.Parsers.ArgumentParser.#ctor(Swan.Parsers.ArgumentParserSettings)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Parsers.ArgumentParser" /> class,
            configurable with <see cref="T:Swan.Parsers.ArgumentParserSettings" /> using a delegate.
            </summary>
            <param name="parseSettings">The parse settings.</param>
        </member>
        <member name="P:Swan.Parsers.ArgumentParser.Current">
            <summary>
            Gets the current.
            </summary>
            <value>
            The current.
            </value>
        </member>
        <member name="P:Swan.Parsers.ArgumentParser.Settings">
            <summary>
            Gets the instance that implements <see cref="T:Swan.Parsers.ArgumentParserSettings" /> in use.
            </summary>
            <value>
            The settings.
            </value>
        </member>
        <member name="M:Swan.Parsers.ArgumentParser.ParseArguments``1(System.Collections.Generic.IEnumerable{System.String},``0@)">
            <summary>
            Parses a string array of command line arguments constructing values in an instance of type <typeparamref name="T" />.
            </summary>
            <typeparam name="T">The type of the options.</typeparam>
            <param name="args">The arguments.</param>
            <param name="instance">The instance.</param>
            <returns>
            <c>true</c> if was converted successfully; otherwise,  <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The exception that is thrown when a null reference (Nothing in Visual Basic) 
            is passed to a method that does not accept it as a valid argument.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            The exception that is thrown when a method call is invalid for the object's current state.
            </exception>
        </member>
        <member name="M:Swan.Parsers.ArgumentParser.ParseArguments``1(System.Collections.Generic.IEnumerable{System.String},``0)">
            <summary>
            Parses a string array of command line arguments constructing values in an instance of type <typeparamref name="T" />.
            </summary>
            <typeparam name="T">The type of the options.</typeparam>
            <param name="args">The arguments.</param>
            <param name="instance">The instance.</param>
            <returns>
            <c>true</c> if was converted successfully; otherwise,  <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The exception that is thrown when a null reference (Nothing in Visual Basic) 
            is passed to a method that does not accept it as a valid argument.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            The exception that is thrown when a method call is invalid for the object's current state.
            </exception>
        </member>
        <member name="T:Swan.Parsers.ArgumentParserSettings">
            <summary>
            Provides settings for <see cref="T:Swan.Parsers.ArgumentParser"/>.
            Based on CommandLine (Copyright 2005-2015 Giacomo Stelluti Scala and Contributors.).
            </summary>
        </member>
        <member name="P:Swan.Parsers.ArgumentParserSettings.WriteBanner">
            <summary>
            Gets or sets a value indicating whether [write banner].
            </summary>
            <value>
              <c>true</c> if [write banner]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Parsers.ArgumentParserSettings.CaseSensitive">
            <summary>
            Gets or sets a value indicating whether perform case sensitive comparisons.
            Note that case insensitivity only applies to <i>parameters</i>, not the values
            assigned to them (for example, enum parsing).
            </summary>
            <value>
              <c>true</c> if [case sensitive]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Parsers.ArgumentParserSettings.CaseInsensitiveEnumValues">
            <summary>
            Gets or sets a value indicating whether perform case sensitive comparisons of <i>values</i>.
            Note that case insensitivity only applies to <i>values</i>, not the parameters.
            </summary>
            <value>
              <c>true</c> if [case insensitive enum values]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Parsers.ArgumentParserSettings.IgnoreUnknownArguments">
            <summary>
            Gets or sets a value indicating whether the parser shall move on to the next argument and ignore the given argument if it
            encounter an unknown arguments.
            </summary>
            <value>
              <c>true</c> to allow parsing the arguments with different class options that do not have all the arguments.
            </value>
            <remarks>
            This allows fragmented version class parsing, useful for project with add-on where add-ons also requires command line arguments but
            when these are unknown by the main program at build time.
            </remarks>
        </member>
        <member name="T:Swan.Parsers.ExpressionParser">
            <summary>
            Represents a generic expression parser.
            </summary>
        </member>
        <member name="M:Swan.Parsers.ExpressionParser.ResolveExpression``1(System.Collections.Generic.IEnumerable{Swan.Parsers.Token})">
            <summary>
            Resolves the expression.
            </summary>
            <typeparam name="T">The type of expression result.</typeparam>
            <param name="tokens">The tokens.</param>
            <returns>The representation of the expression parsed.</returns>
        </member>
        <member name="M:Swan.Parsers.ExpressionParser.ResolveExpression``1(System.Collections.Generic.IEnumerable{Swan.Parsers.Token},System.IFormatProvider)">
            <summary>
            Resolves the expression.
            </summary>
            <typeparam name="T">The type of expression result.</typeparam>
            <param name="tokens">The tokens.</param>
            <param name="formatProvider">The format provider.</param>
            <returns>The representation of the expression parsed.</returns>
        </member>
        <member name="M:Swan.Parsers.ExpressionParser.Parse(System.Collections.Generic.IEnumerable{Swan.Parsers.Token})">
            <summary>
            Parses the specified tokens.
            </summary>
            <param name="tokens">The tokens.</param>
            <returns>
            The final expression.
            </returns>
        </member>
        <member name="M:Swan.Parsers.ExpressionParser.Parse(System.Collections.Generic.IEnumerable{Swan.Parsers.Token},System.IFormatProvider)">
            <summary>
            Parses the specified tokens.
            </summary>
            <param name="tokens">The tokens.</param>
            <param name="formatProvider">The format provider.</param>
            <returns>
            The final expression.
            </returns>
        </member>
        <member name="M:Swan.Parsers.ExpressionParser.ResolveVariable(System.String,System.Collections.Generic.Stack{System.Linq.Expressions.Expression})">
            <summary>
            Resolves the variable.
            </summary>
            <param name="value">The value.</param>
            <param name="expressionStack">The expression stack.</param>
        </member>
        <member name="M:Swan.Parsers.ExpressionParser.ResolveOperator(System.String,System.Collections.Generic.Stack{System.Linq.Expressions.Expression})">
            <summary>
            Resolves the operator.
            </summary>
            <param name="value">The value.</param>
            <param name="expressionStack">The expression stack.</param>
        </member>
        <member name="M:Swan.Parsers.ExpressionParser.ResolveFunction(System.String,System.Collections.Generic.Stack{System.Linq.Expressions.Expression})">
            <summary>
            Resolves the function.
            </summary>
            <param name="value">The value.</param>
            <param name="expressionStack">The expression stack.</param>
        </member>
        <member name="T:Swan.Parsers.Operator">
            <summary>
            Represents an operator with precedence.
            </summary>
        </member>
        <member name="P:Swan.Parsers.Operator.Name">
            <summary>
            Gets or sets the name.
            </summary>
            <value>
            The name.
            </value>
        </member>
        <member name="P:Swan.Parsers.Operator.Precedence">
            <summary>
            Gets or sets the precedence.
            </summary>
            <value>
            The precedence.
            </value>
        </member>
        <member name="P:Swan.Parsers.Operator.RightAssociative">
            <summary>
            Gets or sets a value indicating whether [right associative].
            </summary>
            <value>
              <c>true</c> if [right associative]; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:Swan.Parsers.Token">
            <summary>
            Represents a Token structure.
            </summary>
        </member>
        <member name="M:Swan.Parsers.Token.#ctor(Swan.Parsers.TokenType,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Parsers.Token"/> struct.
            </summary>
            <param name="type">The type.</param>
            <param name="value">The value.</param>
        </member>
        <member name="P:Swan.Parsers.Token.Type">
            <summary>
            Gets or sets the type.
            </summary>
            <value>
            The type.
            </value>
        </member>
        <member name="P:Swan.Parsers.Token.Value">
            <summary>
            Gets the value.
            </summary>
            <value>
            The value.
            </value>
        </member>
        <member name="T:Swan.Parsers.Tokenizer">
            <summary>
            Represents a generic tokenizer.
            </summary>
        </member>
        <member name="M:Swan.Parsers.Tokenizer.#ctor(System.String)">
             <summary>
             Initializes a new instance of the <see cref="T:Swan.Parsers.Tokenizer"/> class.
             This constructor will use the following default operators:
            
             <list type="table">
                 <listheader>
                 <term>Operator</term>
                 <description>Precedence</description>
                 </listheader>
             <item>
             <term>=</term>
             <description>1</description>
             </item>
             <item>
             <term>!=</term>
             <description>1</description>
             </item>
             <item>
             <term>&gt;</term>
             <description>2</description>
             </item>
             <item>
             <term>&lt;</term>
             <description>2</description>
             </item>
             <item>
             <term>&gt;=</term>
             <description>2</description>
             </item>
             <item>
             <term>&lt;=</term>
             <description>2</description>
             </item>
             <item>
             <term>+</term>
             <description>3</description>
             </item>
             <item>
             <term>&amp;</term>
             <description>3</description>
             </item>
             <item>
             <term>-</term>
             <description>3</description>
             </item>
             <item>
             <term>*</term>
             <description>4</description>
             </item>
             <item>
             <term>(backslash)</term>
             <description>4</description>
             </item>
             <item>
             <term>/</term>
             <description>4</description>
             </item>
             <item>
             <term>^</term>
             <description>4</description>
             </item>
             </list>
             </summary>
             <param name="input">The input.</param>
        </member>
        <member name="M:Swan.Parsers.Tokenizer.#ctor(System.String,System.Collections.Generic.IEnumerable{Swan.Parsers.Operator})">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Parsers.Tokenizer" /> class.
            </summary>
            <param name="input">The input.</param>
            <param name="operators">The operators to use.</param>
        </member>
        <member name="P:Swan.Parsers.Tokenizer.Tokens">
            <summary>
            Gets the tokens.
            </summary>
            <value>
            The tokens.
            </value>
        </member>
        <member name="M:Swan.Parsers.Tokenizer.ValidateInput(System.String,System.Int32@)">
            <summary>
            Validates the input and return the start index for tokenizer.
            </summary>
            <param name="input">The input.</param>
            <param name="startIndex">The start index.</param>
            <returns><c>true</c> if the input is valid, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Swan.Parsers.Tokenizer.ResolveFunctionOrMemberType(System.String)">
            <summary>
            Resolves the type of the function or member.
            </summary>
            <param name="input">The input.</param>
            <returns>The token type.</returns>
        </member>
        <member name="M:Swan.Parsers.Tokenizer.EvaluateFunctionOrMember(System.String,System.Int32)">
            <summary>
            Evaluates the function or member.
            </summary>
            <param name="input">The input.</param>
            <param name="position">The position.</param>
            <returns><c>true</c> if the input is a valid function or variable, otherwise <c>false</c>.</returns>
        </member>
        <member name="M:Swan.Parsers.Tokenizer.GetDefaultOperators">
            <summary>
            Gets the default operators.
            </summary>
            <returns>An array with the operators to use for the tokenizer.</returns>
        </member>
        <member name="M:Swan.Parsers.Tokenizer.ShuntingYard(System.Boolean)">
            <summary>
            Shunting the yard.
            </summary>
            <param name="includeFunctionStopper">if set to <c>true</c> [include function stopper] (Token type <c>Wall</c>).</param>
            <returns>
            Enumerable of the token in in.
            </returns>
            <exception cref="T:System.InvalidOperationException">
            Wrong token
            or
            Mismatched parenthesis.
            </exception>
        </member>
        <member name="T:Swan.Parsers.TokenType">
            <summary>
            Enums the token types.
            </summary>
        </member>
        <member name="F:Swan.Parsers.TokenType.Number">
            <summary>
            The number
            </summary>
        </member>
        <member name="F:Swan.Parsers.TokenType.String">
            <summary>
            The string
            </summary>
        </member>
        <member name="F:Swan.Parsers.TokenType.Variable">
            <summary>
            The variable
            </summary>
        </member>
        <member name="F:Swan.Parsers.TokenType.Function">
            <summary>
            The function
            </summary>
        </member>
        <member name="F:Swan.Parsers.TokenType.Parenthesis">
            <summary>
            The parenthesis
            </summary>
        </member>
        <member name="F:Swan.Parsers.TokenType.Operator">
            <summary>
            The operator
            </summary>
        </member>
        <member name="F:Swan.Parsers.TokenType.Comma">
            <summary>
            The comma
            </summary>
        </member>
        <member name="F:Swan.Parsers.TokenType.Wall">
            <summary>
            The wall, used to specified the end of argument list of the following function
            </summary>
        </member>
        <member name="T:Swan.Parsers.VerbOptionAttribute">
            <summary>
            Models a verb option.
            </summary>
        </member>
        <member name="M:Swan.Parsers.VerbOptionAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Parsers.VerbOptionAttribute" /> class.
            </summary>
            <param name="name">The name.</param>
            <exception cref="T:System.ArgumentNullException">name.</exception>
        </member>
        <member name="P:Swan.Parsers.VerbOptionAttribute.Name">
            <summary>
            Gets the name of the verb option.
            </summary>
            <value>
            Name.
            </value>
        </member>
        <member name="P:Swan.Parsers.VerbOptionAttribute.HelpText">
            <summary>
            Gets or sets a short description of this command line verb. Usually a sentence summary.
            </summary>
            <value>
            The help text.
            </value>
        </member>
        <member name="M:Swan.Parsers.VerbOptionAttribute.ToString">
            <inheritdoc />
        </member>
        <member name="T:Swan.Reflection.AttributeCache">
            <summary>
            A thread-safe cache of attributes belonging to a given key (MemberInfo or Type).
            
            The Retrieve method is the most useful one in this class as it
            calls the retrieval process if the type is not contained
            in the cache.
            </summary>
        </member>
        <member name="M:Swan.Reflection.AttributeCache.#ctor(Swan.Reflection.PropertyTypeCache)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Reflection.AttributeCache"/> class.
            </summary>
            <param name="propertyCache">The property cache object.</param>
        </member>
        <member name="P:Swan.Reflection.AttributeCache.DefaultCache">
            <summary>
            Gets the default cache.
            </summary>
            <value>
            The default cache.
            </value>
        </member>
        <member name="P:Swan.Reflection.AttributeCache.PropertyTypeCache">
            <summary>
            A PropertyTypeCache object for caching properties and their attributes.
            </summary>
        </member>
        <member name="M:Swan.Reflection.AttributeCache.Contains``1(System.Reflection.MemberInfo)">
            <summary>
            Determines whether [contains] [the specified member].
            </summary>
            <typeparam name="T">The type of the attribute to be retrieved.</typeparam>
            <param name="member">The member.</param>
            <returns>
              <c>true</c> if [contains] [the specified member]; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Swan.Reflection.AttributeCache.Retrieve``1(System.Reflection.MemberInfo,System.Boolean)">
            <summary>
            Gets specific attributes from a member constrained to an attribute.
            </summary>
            <typeparam name="T">The type of the attribute to be retrieved.</typeparam>
            <param name="member">The member.</param>
            <param name="inherit"><c>true</c> to inspect the ancestors of element; otherwise, <c>false</c>.</param>
            <returns>An array of the attributes stored for the specified type.</returns>
        </member>
        <member name="M:Swan.Reflection.AttributeCache.Retrieve(System.Reflection.MemberInfo,System.Type,System.Boolean)">
            <summary>
            Gets all attributes of a specific type from a member.
            </summary>
            <param name="member">The member.</param>
            <param name="type">The attribute type.</param>
            <param name="inherit"><c>true</c> to inspect the ancestors of element; otherwise, <c>false</c>.</param>
            <returns>An array of the attributes stored for the specified type.</returns>
        </member>
        <member name="M:Swan.Reflection.AttributeCache.RetrieveOne``1(System.Reflection.MemberInfo,System.Boolean)">
            <summary>
            Gets one attribute of a specific type from a member.
            </summary>
            <typeparam name="T">The attribute type.</typeparam>
            <param name="member">The member.</param>
            <param name="inherit"><c>true</c> to inspect the ancestors of element; otherwise, <c>false</c>.</param>
            <returns>An attribute stored for the specified type.</returns>
        </member>
        <member name="M:Swan.Reflection.AttributeCache.RetrieveOne``2(System.Boolean)">
            <summary>
            Gets one attribute of a specific type from a generic type.
            </summary>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <typeparam name="T">The type to retrieve the attribute.</typeparam>
            <param name="inherit">if set to <c>true</c> [inherit].</param>
            <returns>An attribute stored for the specified type.</returns>
        </member>
        <member name="M:Swan.Reflection.AttributeCache.Retrieve``1(System.Type,System.Boolean)">
            <summary>
            Gets all properties an their attributes of a given type constrained to only attributes.
            </summary>
            <typeparam name="T">The type of the attribute to retrieve.</typeparam>
            <param name="type">The type of the object.</param>
            <param name="inherit"><c>true</c> to inspect the ancestors of element; otherwise, <c>false</c>.</param>
            <returns>A dictionary of the properties and their attributes stored for the specified type.</returns>
        </member>
        <member name="M:Swan.Reflection.AttributeCache.RetrieveFromType``2(System.Boolean)">
            <summary>
            Gets all properties and their attributes of a given type.
            </summary>
            <typeparam name="T">The object type used to extract the properties from.</typeparam>
            <typeparam name="TAttribute">The type of the attribute.</typeparam>
            <param name="inherit"><c>true</c> to inspect the ancestors of element; otherwise, <c>false</c>.</param>
            <returns>
            A dictionary of the properties and their attributes stored for the specified type.
            </returns>
        </member>
        <member name="M:Swan.Reflection.AttributeCache.RetrieveFromType``1(System.Type,System.Boolean)">
            <summary>
            Gets all properties and their attributes of a given type.
            </summary>
            <typeparam name="T">The object type used to extract the properties from.</typeparam>
            <param name="attributeType">Type of the attribute.</param>
            <param name="inherit"><c>true</c> to inspect the ancestors of element; otherwise, <c>false</c>.</param>
            <returns>
            A dictionary of the properties and their attributes stored for the specified type.
            </returns>
        </member>
        <member name="T:Swan.Reflection.ConstructorTypeCache">
            <summary>
            A thread-safe cache of constructors belonging to a given type.
            </summary>
        </member>
        <member name="P:Swan.Reflection.ConstructorTypeCache.DefaultCache">
            <summary>
            Gets the default cache.
            </summary>
            <value>
            The default cache.
            </value>
        </member>
        <member name="M:Swan.Reflection.ConstructorTypeCache.RetrieveAllConstructors``1(System.Boolean)">
            <summary>
            Retrieves all constructors order by the number of parameters ascending.
            </summary>
            <typeparam name="T">The type to inspect.</typeparam>
            <param name="includeNonPublic">if set to <c>true</c> [include non public].</param>
            <returns>
            A collection with all the constructors in the given type.
            </returns>
        </member>
        <member name="M:Swan.Reflection.ConstructorTypeCache.RetrieveAllConstructors(System.Type,System.Boolean)">
            <summary>
            Retrieves all constructors order by the number of parameters ascending.
            </summary>
            <param name="type">The type.</param>
            <param name="includeNonPublic">if set to <c>true</c> [include non public].</param>
            <returns>
            A collection with all the constructors in the given type.
            </returns>
        </member>
        <member name="T:Swan.Reflection.ExtendedTypeInfo">
            <summary>
            Provides extended information about a type.
            
            This class is mainly used to define sets of types within the Definition class
            and it is not meant for other than querying the BasicTypesInfo dictionary.
            </summary>
        </member>
        <member name="M:Swan.Reflection.ExtendedTypeInfo.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Reflection.ExtendedTypeInfo"/> class.
            </summary>
            <param name="t">The t.</param>
        </member>
        <member name="P:Swan.Reflection.ExtendedTypeInfo.Type">
            <summary>
            Gets the type this extended info class provides for.
            </summary>
            <value>
            The type.
            </value>
        </member>
        <member name="P:Swan.Reflection.ExtendedTypeInfo.IsNullableValueType">
            <summary>
            Gets a value indicating whether the type is a nullable value type.
            </summary>
            <value>
            <c>true</c> if this instance is nullable value type; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Reflection.ExtendedTypeInfo.IsNumeric">
            <summary>
            Gets a value indicating whether the type or underlying type is numeric.
            </summary>
            <value>
             <c>true</c> if this instance is numeric; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Reflection.ExtendedTypeInfo.IsValueType">
            <summary>
            Gets a value indicating whether the type is value type.
            Nullable value types have this property set to False.
            </summary>
        </member>
        <member name="P:Swan.Reflection.ExtendedTypeInfo.UnderlyingType">
            <summary>
            When dealing with nullable value types, this property will
            return the underlying value type of the nullable,
            Otherwise it will return the same type as the Type property.
            </summary>
            <value>
            The type of the underlying.
            </value>
        </member>
        <member name="P:Swan.Reflection.ExtendedTypeInfo.TryParseMethodInfo">
            <summary>
            Gets the try parse method information. If the type does not contain
            a suitable TryParse static method, it will return null.
            </summary>
            <value>
            The try parse method information.
            </value>
        </member>
        <member name="P:Swan.Reflection.ExtendedTypeInfo.ToStringMethodInfo">
            <summary>
            Gets the ToString method info
            It will prefer the overload containing the IFormatProvider argument.
            </summary>
            <value>
            To string method information.
            </value>
        </member>
        <member name="P:Swan.Reflection.ExtendedTypeInfo.CanParseNatively">
            <summary>
            Gets a value indicating whether the type contains a suitable TryParse method.
            </summary>
            <value>
            <c>true</c> if this instance can parse natively; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="M:Swan.Reflection.ExtendedTypeInfo.TryParse(System.String,System.Object@)">
            <summary>
            Tries to parse the string into an object of the type this instance represents.
            Returns false when no suitable TryParse methods exists for the type or when parsing fails
            for any reason. When possible, this method uses CultureInfo.InvariantCulture and NumberStyles.Any.
            </summary>
            <param name="s">The s.</param>
            <param name="result">The result.</param>
            <returns><c>true</c> if parse was converted successfully; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:Swan.Reflection.ExtendedTypeInfo.ToStringInvariant(System.Object)">
            <summary>
            Converts this instance to its string representation, 
            trying to use the CultureInfo.InvariantCulture
            IFormat provider if the overload is available.
            </summary>
            <param name="instance">The instance.</param>
            <returns>A <see cref="T:System.String" /> that represents the current object.</returns>
        </member>
        <member name="T:Swan.Reflection.ExtendedTypeInfo`1">
            <summary>
            Provides extended information about a type.
            
            This class is mainly used to define sets of types within the Constants class
            and it is not meant for other than querying the BasicTypesInfo dictionary.
            </summary>
            <typeparam name="T">The type of extended type information.</typeparam>
        </member>
        <member name="M:Swan.Reflection.ExtendedTypeInfo`1.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Reflection.ExtendedTypeInfo`1"/> class.
            </summary>
        </member>
        <member name="M:Swan.Reflection.ExtendedTypeInfo`1.ToStringInvariant(`0)">
            <summary>
            Converts this instance to its string representation,
            trying to use the CultureInfo.InvariantCulture
            IFormat provider if the overload is available.
            </summary>
            <param name="instance">The instance.</param>
            <returns>A <see cref="T:System.String" /> that represents the current object.</returns>
        </member>
        <member name="T:Swan.Reflection.IPropertyProxy">
            <summary>
            Represents a generic interface to store getters and setters for high speed access to properties.
            </summary>
        </member>
        <member name="P:Swan.Reflection.IPropertyProxy.Name">
            <summary>
            Gets the name of the property.
            </summary>
        </member>
        <member name="P:Swan.Reflection.IPropertyProxy.PropertyType">
            <summary>
            Gets the type of the property.
            </summary>
        </member>
        <member name="P:Swan.Reflection.IPropertyProxy.Property">
            <summary>
            Gets the associated reflection property info.
            </summary>
        </member>
        <member name="P:Swan.Reflection.IPropertyProxy.EnclosingType">
            <summary>
            Gets the type owning this property proxy.
            </summary>
        </member>
        <member name="M:Swan.Reflection.IPropertyProxy.GetValue(System.Object)">
            <summary>
            Gets the property value via a stored delegate.
            </summary>
            <param name="instance">The instance.</param>
            <returns>The property value.</returns>
        </member>
        <member name="M:Swan.Reflection.IPropertyProxy.SetValue(System.Object,System.Object)">
            <summary>
            Sets the property value via a stored delegate.
            </summary>
            <param name="instance">The instance.</param>
            <param name="value">The value.</param>
        </member>
        <member name="T:Swan.Reflection.MethodInfoCache">
            <summary>
            Represents a Method Info Cache.
            </summary>
        </member>
        <member name="M:Swan.Reflection.MethodInfoCache.Retrieve``1(System.String,System.String,System.Type[])">
            <summary>
            Retrieves the properties stored for the specified type.
            If the properties are not available, it calls the factory method to retrieve them
            and returns them as an array of PropertyInfo.
            </summary>
            <typeparam name="T">The type of type.</typeparam>
            <param name="name">The name.</param>
            <param name="alias">The alias.</param>
            <param name="types">The types.</param>
            <returns>
            The cached MethodInfo.
            </returns>
            <exception cref="T:System.ArgumentNullException">name
            or
            factory.</exception>
        </member>
        <member name="M:Swan.Reflection.MethodInfoCache.Retrieve``1(System.String,System.Type[])">
            <summary>
            Retrieves the specified name.
            </summary>
            <typeparam name="T">The type of type.</typeparam>
            <param name="name">The name.</param>
            <param name="types">The types.</param>
            <returns>
            The cached MethodInfo.
            </returns>
        </member>
        <member name="M:Swan.Reflection.MethodInfoCache.Retrieve(System.Type,System.String,System.Type[])">
            <summary>
            Retrieves the specified type.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="types">The types.</param>
            <returns>
            An array of the properties stored for the specified type.
            </returns>
        </member>
        <member name="M:Swan.Reflection.MethodInfoCache.Retrieve(System.Type,System.String,System.String,System.Type[])">
            <summary>
            Retrieves the specified type.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <param name="alias">The alias.</param>
            <param name="types">The types.</param>
            <returns>
            The cached MethodInfo.
            </returns>
        </member>
        <member name="M:Swan.Reflection.MethodInfoCache.Retrieve``1(System.String)">
            <summary>
            Retrieves the specified name.
            </summary>
            <typeparam name="T">The type of type.</typeparam>
            <param name="name">The name.</param>
            <returns>
            The cached MethodInfo.
            </returns>
        </member>
        <member name="M:Swan.Reflection.MethodInfoCache.Retrieve(System.Type,System.String)">
            <summary>
            Retrieves the specified type.
            </summary>
            <param name="type">The type.</param>
            <param name="name">The name.</param>
            <returns>
            The cached MethodInfo.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            type
            or
            name.
            </exception>
        </member>
        <member name="T:Swan.Reflection.PropertyInfoProxy">
            <summary>
            The concrete and hidden implementation of the <see cref="T:Swan.Reflection.IPropertyProxy"/> implementation.
            </summary>
            <seealso cref="T:Swan.Reflection.IPropertyProxy" />
        </member>
        <member name="M:Swan.Reflection.PropertyInfoProxy.#ctor(System.Type,System.Reflection.PropertyInfo)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Reflection.PropertyInfoProxy"/> class.
            </summary>
            <param name="declaringType">Type of the declaring.</param>
            <param name="propertyInfo">The property information.</param>
        </member>
        <member name="P:Swan.Reflection.PropertyInfoProxy.Property">
            <inheritdoc />
        </member>
        <member name="P:Swan.Reflection.PropertyInfoProxy.EnclosingType">
            <inheritdoc />
        </member>
        <member name="P:Swan.Reflection.PropertyInfoProxy.Name">
            <inheritdoc />
        </member>
        <member name="P:Swan.Reflection.PropertyInfoProxy.PropertyType">
            <inheritdoc />
        </member>
        <member name="M:Swan.Reflection.PropertyInfoProxy.GetValue(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Swan.Reflection.PropertyInfoProxy.SetValue(System.Object,System.Object)">
            <inheritdoc />
        </member>
        <member name="T:Swan.Reflection.PropertyTypeCache">
            <summary>
            A thread-safe cache of properties belonging to a given type.
            </summary>
        </member>
        <member name="P:Swan.Reflection.PropertyTypeCache.DefaultCache">
            <summary>
            Gets the default cache.
            </summary>
            <value>
            The default cache.
            </value>
        </member>
        <member name="M:Swan.Reflection.PropertyTypeCache.RetrieveAllProperties``1(System.Boolean)">
            <summary>
            Retrieves all properties.
            </summary>
            <typeparam name="T">The type to inspect.</typeparam>
            <param name="onlyPublic">if set to <c>true</c> [only public].</param>
            <returns>
            A collection with all the properties in the given type.
            </returns>
        </member>
        <member name="M:Swan.Reflection.PropertyTypeCache.RetrieveAllProperties(System.Type,System.Boolean)">
            <summary>
            Retrieves all properties.
            </summary>
            <param name="type">The type.</param>
            <param name="onlyPublic">if set to <c>true</c> [only public].</param>
            <returns>
            A collection with all the properties in the given type.
            </returns>
        </member>
        <member name="M:Swan.Reflection.PropertyTypeCache.RetrieveFilteredProperties(System.Type,System.Boolean,System.Func{System.Reflection.PropertyInfo,System.Boolean})">
            <summary>
            Retrieves the filtered properties.
            </summary>
            <param name="type">The type.</param>
            <param name="onlyPublic">if set to <c>true</c> [only public].</param>
            <param name="filter">The filter.</param>
            <returns>
            A collection with all the properties in the given type.
            </returns>
        </member>
        <member name="T:Swan.Reflection.TypeCache`1">
            <summary>
            A thread-safe cache of members belonging to a given type.
            
            The Retrieve method is the most useful one in this class as it
            calls the retrieval process if the type is not contained
            in the cache.
            </summary>
            <typeparam name="T">The type of Member to be cached.</typeparam>
        </member>
        <member name="M:Swan.Reflection.TypeCache`1.Contains``1">
            <summary>
            Determines whether the cache contains the specified type.
            </summary>
            <typeparam name="TOut">The type of the out.</typeparam>
            <returns>
              <c>true</c> if [contains]; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Swan.Reflection.TypeCache`1.Retrieve``1(System.Func{System.Type,System.Collections.Generic.IEnumerable{`0}})">
            <summary>
            Retrieves the properties stored for the specified type.
            If the properties are not available, it calls the factory method to retrieve them
            and returns them as an array of PropertyInfo.
            </summary>
            <typeparam name="TOut">The type of the out.</typeparam>
            <param name="factory">The factory.</param>
            <returns>An array of the properties stored for the specified type.</returns>
        </member>
        <member name="T:Swan.Reflection.FieldTypeCache">
            <summary>
            A thread-safe cache of fields belonging to a given type
            The Retrieve method is the most useful one in this class as it
            calls the retrieval process if the type is not contained
            in the cache.
            </summary>
        </member>
        <member name="P:Swan.Reflection.FieldTypeCache.DefaultCache">
            <summary>
            Gets the default cache.
            </summary>
            <value>
            The default cache.
            </value>
        </member>
        <member name="M:Swan.Reflection.FieldTypeCache.RetrieveAllFields``1">
            <summary>
            Retrieves all fields.
            </summary>
            <typeparam name="T">The type to inspect.</typeparam>
            <returns>
            A collection with all the fields in the given type.
            </returns>
        </member>
        <member name="M:Swan.Reflection.FieldTypeCache.RetrieveAllFields(System.Type)">
            <summary>
            Retrieves all fields.
            </summary>
            <param name="type">The type.</param>
            <returns>
            A collection with all the fields in the given type.
            </returns>
        </member>
        <member name="T:Swan.SelfCheck">
            <summary>
            Provides methods to perform self-checks in library or application code.
            </summary>
        </member>
        <member name="M:Swan.SelfCheck.Failure(System.String,System.String,System.Int32)">
            <summary>
            <para>Creates and returns an exception telling that an internal self-check has failed.</para>
            <para>The returned exception will be of type <see cref="T:Swan.InternalErrorException"/>; its
            <see cref="P:System.Exception.Message">Message</see> property will contain the specified
            <paramref name="message"/>, preceded by an indication of the assembly, source file,
            and line number of the failed check.</para>
            </summary>
            <param name="message">The exception message.</param>
            <param name="filePath">The path of the source file where this method is called.
            This parameter is automatically added by the compiler amd should never be provided explicitly.</param>
            <param name="lineNumber">The line number in source where this method is called.
            This parameter is automatically added by the compiler amd should never be provided explicitly.</param>
            <returns>
            A newly-created instance of <see cref="T:Swan.InternalErrorException"/>.
            </returns>
        </member>
        <member name="T:Swan.SingletonBase`1">
            <summary>
            Represents a singleton pattern abstract class.
            </summary>
            <typeparam name="T">The type of class.</typeparam>
        </member>
        <member name="F:Swan.SingletonBase`1.LazyInstance">
            <summary>
            The static, singleton instance reference.
            </summary>
        </member>
        <member name="P:Swan.SingletonBase`1.Instance">
            <summary>
            Gets the instance that this singleton represents.
            If the instance is null, it is constructed and assigned when this member is accessed.
            </summary>
            <value>
            The instance.
            </value>
        </member>
        <member name="M:Swan.SingletonBase`1.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Swan.SingletonBase`1.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            Call the GC.SuppressFinalize if you override this method and use
            a non-default class finalizer (destructor).
            </summary>
            <param name="disposeManaged"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:Swan.StringConversionException">
            <summary>
            The exception that is thrown when a conversion from a string to a
            specified type fails.
            </summary>
            <seealso cref="T:Swan.FromString" />
        </member>
        <member name="M:Swan.StringConversionException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.StringConversionException"/> class.
            </summary>
        </member>
        <member name="M:Swan.StringConversionException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.StringConversionException"/> class.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
        </member>
        <member name="M:Swan.StringConversionException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.StringConversionException"/> class.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception,
            or <see langword="null" /> if no inner exception is specified.</param>
        </member>
        <member name="M:Swan.StringConversionException.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.StringConversionException"/> class.
            </summary>
            <param name="type">The desired resulting type of the attempted conversion.</param>
        </member>
        <member name="M:Swan.StringConversionException.#ctor(System.Type,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.StringConversionException"/> class.
            </summary>
            <param name="type">The desired resulting type of the attempted conversion.</param>
            <param name="innerException">The exception that is the cause of the current exception,
            or <see langword="null" /> if no inner exception is specified.</param>
        </member>
        <member name="M:Swan.StringConversionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.StringConversionException"/> class.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data
            about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information
            about the source or destination.</param>
        </member>
        <member name="T:Swan.StructEndiannessAttribute">
            <summary>
            An attribute used to help conversion structs back and forth into arrays of bytes via
            extension methods included in this library ToStruct and ToBytes.
            </summary>
            <seealso cref="T:System.Attribute" />
        </member>
        <member name="M:Swan.StructEndiannessAttribute.#ctor(Swan.Endianness)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.StructEndiannessAttribute"/> class.
            </summary>
            <param name="endianness">The endianness.</param>
        </member>
        <member name="P:Swan.StructEndiannessAttribute.Endianness">
            <summary>
            Gets the endianness.
            </summary>
            <value>
            The endianness.
            </value>
        </member>
        <member name="T:Swan.SwanRuntime">
            <summary>
            Provides utility methods to retrieve information about the current application.
            </summary>
        </member>
        <member name="P:Swan.SwanRuntime.OS">
            <summary>
            Gets the current Operating System.
            </summary>
            <value>
            The os.
            </value>
        </member>
        <member name="P:Swan.SwanRuntime.IsTheOnlyInstance">
            <summary>
            Checks if this application (including version number) is the only instance currently running.
            </summary>
            <value>
              <c>true</c> if this instance is the only instance; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.SwanRuntime.IsUsingMonoRuntime">
            <summary>
            Gets a value indicating whether this application instance is using the MONO runtime.
            </summary>
            <value>
              <c>true</c> if this instance is using MONO runtime; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.SwanRuntime.EntryAssembly">
            <summary>
            Gets the assembly that started the application.
            </summary>
            <value>
            The entry assembly.
            </value>
        </member>
        <member name="P:Swan.SwanRuntime.EntryAssemblyName">
            <summary>
            Gets the name of the entry assembly.
            </summary>
            <value>
            The name of the entry assembly.
            </value>
        </member>
        <member name="P:Swan.SwanRuntime.EntryAssemblyVersion">
            <summary>
            Gets the entry assembly version.
            </summary>
        </member>
        <member name="P:Swan.SwanRuntime.EntryAssemblyDirectory">
            <summary>
            Gets the full path to the folder containing the assembly that started the application.
            </summary>
            <value>
            The entry assembly directory.
            </value>
        </member>
        <member name="P:Swan.SwanRuntime.CompanyName">
            <summary>
            Gets the name of the company.
            </summary>
            <value>
            The name of the company.
            </value>
        </member>
        <member name="P:Swan.SwanRuntime.ProductName">
            <summary>
            Gets the name of the product.
            </summary>
            <value>
            The name of the product.
            </value>
        </member>
        <member name="P:Swan.SwanRuntime.ProductTrademark">
            <summary>
            Gets the trademark.
            </summary>
            <value>
            The product trademark.
            </value>
        </member>
        <member name="P:Swan.SwanRuntime.LocalStoragePath">
            <summary>
            Gets a local storage path with a version.
            </summary>
            <value>
            The local storage path.
            </value>
        </member>
        <member name="M:Swan.SwanRuntime.GetDesktopFilePath(System.String)">
            <summary>
            Build a full path pointing to the current user's desktop with the given filename.
            </summary>
            <param name="filename">The filename.</param>
            <returns>
            The fully qualified location of path, such as "C:\MyFile.txt".
            </returns>
            <exception cref="T:System.ArgumentNullException">filename.</exception>
        </member>
        <member name="T:Swan.Terminal">
            <summary>
            A console terminal helper to create nicer output and receive input from the user. 
            This class is thread-safe :).
            </summary>
            <summary>
            A console terminal helper to create nicer output and receive input from the user
            This class is thread-safe :).
            </summary>
            <summary>
            A console terminal helper to create nicer output and receive input from the user
            This class is thread-safe :).
            </summary>
            <summary>
            A console terminal helper to create nicer output and receive input from the user
            This class is thread-safe :).
            </summary>
            <summary>
            A console terminal helper to create nicer output and receive input from the user
            This class is thread-safe :).
            </summary>
        </member>
        <member name="M:Swan.Terminal.#cctor">
            <summary>
            Initializes static members of the <see cref="T:Swan.Terminal"/> class.
            </summary>
        </member>
        <member name="P:Swan.Terminal.CursorLeft">
            <summary>
            Gets or sets the cursor left position.
            </summary>
            <value>
            The cursor left.
            </value>    
        </member>
        <member name="P:Swan.Terminal.CursorTop">
            <summary>
            Gets or sets the cursor top position.
            </summary>
            <value>
            The cursor top.
            </value>
        </member>
        <member name="P:Swan.Terminal.IsConsolePresent">
            <summary>
            Gets a value indicating whether the Console is present.
            </summary>
            <value>
            <c>true</c> if this instance is console present; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Terminal.AvailableWriters">
            <summary>
            Gets the available output writers in a bitwise mask.
            </summary>
            <value>
            The available writers.
            </value>
        </member>
        <member name="P:Swan.Terminal.OutputEncoding">
            <summary>
            Gets or sets the output encoding for the current console.
            </summary>
            <value>
            The output encoding.
            </value>
        </member>
        <member name="M:Swan.Terminal.Flush(System.Nullable{System.TimeSpan})">
            <summary>
            Waits for all of the queued output messages to be written out to the console.
            Call this method if it is important to display console text before
            quitting the application such as showing usage or help.
            Set the timeout to null or TimeSpan.Zero to wait indefinitely.
            </summary>
            <param name="timeout">The timeout. Set the amount of time to black before this method exits.</param>
        </member>
        <member name="M:Swan.Terminal.SetCursorPosition(System.Int32,System.Int32)">
            <summary>
            Sets the cursor position.
            </summary>
            <param name="left">The left.</param>
            <param name="top">The top.</param>
        </member>
        <member name="M:Swan.Terminal.BacklineCursor">
            <summary>
            Moves the output cursor one line up starting at left position 0
            Please note that backlining the cursor does not clear the contents of the 
            previous line so you might need to clear it by writing an empty string the 
            length of the console width.
            </summary>
        </member>
        <member name="M:Swan.Terminal.WriteWelcomeBanner(System.ConsoleColor)">
            <summary>
            Writes a standard banner to the standard output
            containing the company name, product name, assembly version and trademark.
            </summary>
            <param name="color">The color.</param>
        </member>
        <member name="M:Swan.Terminal.EnqueueOutput(Swan.Terminal.OutputContext)">
            <summary>
            Enqueues the output to be written to the console
            This is the only method that should enqueue to the output
            Please note that if AvailableWriters is None, then no output will be enqueued.
            </summary>
            <param name="context">The context.</param>
        </member>
        <member name="M:Swan.Terminal.DequeueOutputCycle">
            <summary>
            Runs a Terminal I/O cycle in the <see cref="T:System.Threading.ThreadPool"/> thread.
            </summary>
        </member>
        <member name="T:Swan.Terminal.OutputContext">
            <summary>
            Represents an asynchronous output context.
            </summary>
        </member>
        <member name="M:Swan.Terminal.OutputContext.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Terminal.OutputContext"/> class.
            </summary>
        </member>
        <member name="T:Swan.Terminal.Table">
            <summary>
            Represents a Table to print in console.
            </summary>
        </member>
        <member name="M:Swan.Terminal.ReadKey(System.Boolean,System.Boolean)">
            <summary>
            Reads a key from the Terminal. This is the closest equivalent to Console.ReadKey.
            </summary>
            <param name="intercept">if set to <c>true</c> the pressed key will not be rendered to the output.</param>
            <param name="disableLocking">if set to <c>true</c> the output will continue to be shown.
            This is useful for services and daemons that are running as console applications and wait for a key to exit the program.</param>
            <returns>The console key information.</returns>
        </member>
        <member name="M:Swan.Terminal.ReadKey(System.String,System.Boolean)">
            <summary>
            Reads a key from the Terminal.
            </summary>
            <param name="prompt">The prompt.</param>
            <param name="preventEcho">if set to <c>true</c> [prevent echo].</param>
            <returns>The console key information.</returns>
        </member>
        <member name="M:Swan.Terminal.Clear">
            <summary>
            Clears the screen.
            </summary>
        </member>
        <member name="M:Swan.Terminal.ReadLine">
            <summary>
            Reads a line of text from the console.
            </summary>
            <returns>The read line.</returns>
        </member>
        <member name="M:Swan.Terminal.ReadLine(System.String)">
            <summary>
            Reads a line from the input.
            </summary>
            <param name="prompt">The prompt.</param>
            <returns>The read line.</returns>
        </member>
        <member name="M:Swan.Terminal.ReadNumber(System.String,System.Int32)">
            <summary>
            Reads a number from the input. If unable to parse, it returns the default number.
            </summary>
            <param name="prompt">The prompt.</param>
            <param name="defaultNumber">The default number.</param>
            <returns>
            Conversions of string representation of a number to its 32-bit signed integer equivalent.
            </returns>
        </member>
        <member name="M:Swan.Terminal.ReadPrompt(System.String,System.Collections.Generic.IDictionary{System.ConsoleKey,System.String},System.String)">
            <summary>
            Creates a table prompt where the user can enter an option based on the options dictionary provided.
            </summary>
            <param name="title">The title.</param>
            <param name="options">The options.</param>
            <param name="anyKeyOption">Any key option.</param>
            <returns>
            A value that identifies the console key that was pressed.
            </returns>
            <exception cref="T:System.ArgumentNullException">options.</exception>
        </member>
        <member name="M:Swan.Terminal.Write(System.Char,System.Nullable{System.ConsoleColor},System.Int32,System.Boolean,Swan.TerminalWriters)">
            <summary>
            Writes a character a number of times, optionally adding a new line at the end.
            </summary>
            <param name="charCode">The character code.</param>
            <param name="color">The color.</param>
            <param name="count">The count.</param>
            <param name="newLine">if set to <c>true</c> [new line].</param>
            <param name="writerFlags">The writer flags.</param>
        </member>
        <member name="M:Swan.Terminal.Write(System.String,System.Nullable{System.ConsoleColor},Swan.TerminalWriters)">
            <summary>
            Writes the specified text in the given color.
            </summary>
            <param name="text">The text.</param>
            <param name="color">The color.</param>
            <param name="writerFlags">The writer flags.</param>
        </member>
        <member name="M:Swan.Terminal.WriteLine(Swan.TerminalWriters)">
            <summary>
            Writes a New Line Sequence to the standard output.
            </summary>
            <param name="writerFlags">The writer flags.</param>
        </member>
        <member name="M:Swan.Terminal.WriteLine(System.String,System.Nullable{System.ConsoleColor},Swan.TerminalWriters)">
            <summary>
            Writes a line of text in the current console foreground color
            to the standard output.
            </summary>
            <param name="text">The text.</param>
            <param name="color">The color.</param>
            <param name="writerFlags">The writer flags.</param>
        </member>
        <member name="M:Swan.Terminal.OverwriteLine(System.String,System.Nullable{System.ConsoleColor},Swan.TerminalWriters)">
            <summary>
            As opposed to WriteLine methods, it prepends a Carriage Return character to the text
            so that the console moves the cursor one position up after the text has been written out.
            </summary>
            <param name="text">The text.</param>
            <param name="color">The color.</param>
            <param name="writerFlags">The writer flags.</param>
        </member>
        <member name="T:Swan.Terminal.Settings">
            <summary>
            Terminal global settings.
            </summary>
        </member>
        <member name="P:Swan.Terminal.Settings.DefaultColor">
            <summary>
            Gets or sets the default output color.
            </summary>
            <value>
            The default color.
            </value>
        </member>
        <member name="P:Swan.Terminal.Settings.BorderColor">
            <summary>
            Gets the color of the border.
            </summary>
            <value>
            The color of the border.
            </value>
        </member>
        <member name="P:Swan.Terminal.Settings.UserInputPrefix">
            <summary>
            Gets or sets the user input prefix.
            </summary>
            <value>
            The user input prefix.
            </value>
        </member>
        <member name="P:Swan.Terminal.Settings.UserOptionText">
            <summary>
            Gets or sets the user option text.
            </summary>
            <value>
            The user option text.
            </value>
        </member>
        <member name="T:Swan.TerminalWriters">
            <summary>
            Defines a set of bitwise standard terminal writers.
            </summary>
        </member>
        <member name="F:Swan.TerminalWriters.None">
            <summary>
            Prevents output
            </summary>
        </member>
        <member name="F:Swan.TerminalWriters.StandardOutput">
            <summary>
            Writes to the Console.Out
            </summary>
        </member>
        <member name="F:Swan.TerminalWriters.StandardError">
            <summary>
            Writes to the Console.Error
            </summary>
        </member>
        <member name="F:Swan.TerminalWriters.All">
            <summary>
            Writes to all possible terminal writers
            </summary>
        </member>
        <member name="T:Swan.Threading.AtomicBoolean">
            <summary>
            Fast, atomic boolean combining interlocked to write value and volatile to read values.
            </summary>
        </member>
        <member name="M:Swan.Threading.AtomicBoolean.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.AtomicBoolean"/> class.
            </summary>
            <param name="initialValue">if set to <c>true</c> [initial value].</param>
        </member>
        <member name="M:Swan.Threading.AtomicBoolean.FromLong(System.Int64)">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Threading.AtomicBoolean.ToLong(System.Boolean)">
            <inheritdoc/>
        </member>
        <member name="T:Swan.Threading.AtomicDateTime">
            <summary>
            Defines an atomic DateTime.
            </summary>
        </member>
        <member name="M:Swan.Threading.AtomicDateTime.#ctor(System.DateTime)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.AtomicDateTime"/> class.
            </summary>
            <param name="initialValue">The initial value.</param>
        </member>
        <member name="M:Swan.Threading.AtomicDateTime.FromLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.AtomicDateTime.ToLong(System.DateTime)">
            <inheritdoc />
        </member>
        <member name="T:Swan.Threading.AtomicDouble">
            <summary>
            Fast, atomic double combining interlocked to write value and volatile to read values.
            </summary>
        </member>
        <member name="M:Swan.Threading.AtomicDouble.#ctor(System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.AtomicDouble"/> class.
            </summary>
            <param name="initialValue">if set to <c>true</c> [initial value].</param>
        </member>
        <member name="M:Swan.Threading.AtomicDouble.FromLong(System.Int64)">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Threading.AtomicDouble.ToLong(System.Double)">
            <inheritdoc/>
        </member>
        <member name="T:Swan.Threading.AtomicEnum`1">
            <summary>
            Defines an atomic generic Enum.
            </summary>
            <typeparam name="T">The type of enum.</typeparam>
        </member>
        <member name="M:Swan.Threading.AtomicEnum`1.#ctor(`0)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.AtomicEnum`1"/> class.
            </summary>
            <param name="initialValue">The initial value.</param>
            <exception cref="T:System.ArgumentException">T must be an enumerated type.</exception>
        </member>
        <member name="P:Swan.Threading.AtomicEnum`1.Value">
            <summary>
            Gets or sets the value.
            </summary>
        </member>
        <member name="T:Swan.Threading.AtomicInteger">
            <summary>
            Represents an atomically readable or writable integer.
            </summary>
        </member>
        <member name="M:Swan.Threading.AtomicInteger.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.AtomicInteger"/> class.
            </summary>
            <param name="initialValue">if set to <c>true</c> [initial value].</param>
        </member>
        <member name="M:Swan.Threading.AtomicInteger.FromLong(System.Int64)">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Threading.AtomicInteger.ToLong(System.Int32)">
            <inheritdoc/>
        </member>
        <member name="T:Swan.Threading.AtomicLong">
            <summary>
            Fast, atomic long combining interlocked to write value and volatile to read values.
            </summary>
        </member>
        <member name="M:Swan.Threading.AtomicLong.#ctor(System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.AtomicLong"/> class.
            </summary>
            <param name="initialValue">if set to <c>true</c> [initial value].</param>
        </member>
        <member name="M:Swan.Threading.AtomicLong.FromLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.AtomicLong.ToLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="T:Swan.Threading.AtomicTimeSpan">
            <summary>
            Represents an atomic TimeSpan type.
            </summary>
        </member>
        <member name="M:Swan.Threading.AtomicTimeSpan.#ctor(System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.AtomicTimeSpan" /> class.
            </summary>
            <param name="initialValue">The initial value.</param>
        </member>
        <member name="M:Swan.Threading.AtomicTimeSpan.FromLong(System.Int64)">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.AtomicTimeSpan.ToLong(System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="T:Swan.Threading.AtomicTypeBase`1">
            <summary>
            Provides a generic implementation of an Atomic (interlocked) type
            
            Idea taken from Memory model and .NET operations in article:
            http://igoro.com/archive/volatile-keyword-in-c-memory-model-explained/.
            </summary>
            <typeparam name="T">The structure type backed by a 64-bit value.</typeparam>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.#ctor(System.Int64)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.AtomicTypeBase`1"/> class.
            </summary>
            <param name="initialValue">The initial value.</param>
        </member>
        <member name="P:Swan.Threading.AtomicTypeBase`1.Value">
            <summary>
            Gets or sets the value.
            </summary>
        </member>
        <member name="P:Swan.Threading.AtomicTypeBase`1.BackingValue">
            <summary>
            Gets or sets the backing value.
            </summary>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.op_Equality(Swan.Threading.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator ==.
            </summary>
            <param name="a">a.</param>
            <param name="b">The b.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.op_Inequality(Swan.Threading.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator !=.
            </summary>
            <param name="a">a.</param>
            <param name="b">The b.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.op_GreaterThan(Swan.Threading.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator &gt;.
            </summary>
            <param name="a">a.</param>
            <param name="b">The b.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.op_LessThan(Swan.Threading.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator &lt;.
            </summary>
            <param name="a">a.</param>
            <param name="b">The b.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.op_GreaterThanOrEqual(Swan.Threading.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator &gt;=.
            </summary>
            <param name="a">a.</param>
            <param name="b">The b.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.op_LessThanOrEqual(Swan.Threading.AtomicTypeBase{`0},`0)">
            <summary>
            Implements the operator &lt;=.
            </summary>
            <param name="a">a.</param>
            <param name="b">The b.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.op_Increment(Swan.Threading.AtomicTypeBase{`0})">
            <summary>
            Implements the operator ++.
            </summary>
            <param name="instance">The instance.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.op_Decrement(Swan.Threading.AtomicTypeBase{`0})">
            <summary>
            Implements the operator --.
            </summary>
            <param name="instance">The instance.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.op_Addition(Swan.Threading.AtomicTypeBase{`0},System.Int64)">
            <summary>
            Implements the operator -&lt;.
            </summary>
            <param name="instance">The instance.</param>
            <param name="operand">The operand.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.op_Subtraction(Swan.Threading.AtomicTypeBase{`0},System.Int64)">
            <summary>
            Implements the operator -.
            </summary>
            <param name="instance">The instance.</param>
            <param name="operand">The operand.</param>
            <returns>
            The result of the operator.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.CompareTo(System.Object)">
            <summary>
            Compares the value to the other instance.
            </summary>
            <param name="other">The other instance.</param>
            <returns>0 if equal, 1 if this instance is greater, -1 if this instance is less than.</returns>
            <exception cref="T:System.ArgumentException">When types are incompatible.</exception>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.CompareTo(`0)">
            <summary>
            Compares the value to the other instance.
            </summary>
            <param name="other">The other instance.</param>
            <returns>0 if equal, 1 if this instance is greater, -1 if this instance is less than.</returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.CompareTo(Swan.Threading.AtomicTypeBase{`0})">
            <summary>
            Compares the value to the other instance.
            </summary>
            <param name="other">The other instance.</param>
            <returns>0 if equal, 1 if this instance is greater, -1 if this instance is less than.</returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object" />, is equal to this instance.
            </summary>
            <param name="other">The <see cref="T:System.Object" /> to compare with this instance.</param>
            <returns>
              <c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.GetHashCode">
            <summary>
            Returns a hash code for this instance.
            </summary>
            <returns>
            A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
            </returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.Equals(Swan.Threading.AtomicTypeBase{`0})">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.Equals(`0)">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.FromLong(System.Int64)">
            <summary>
            Converts from a long value to the target type.
            </summary>
            <param name="backingValue">The backing value.</param>
            <returns>The value converted form a long value.</returns>
        </member>
        <member name="M:Swan.Threading.AtomicTypeBase`1.ToLong(`0)">
            <summary>
            Converts from the target type to a long value.
            </summary>
            <param name="value">The value.</param>
            <returns>The value converted to a long value.</returns>
        </member>
        <member name="T:Swan.Threading.CancellationTokenOwner">
            <summary>
            Acts as a <see cref="T:System.Threading.CancellationTokenSource"/> but with reusable tokens.
            </summary>
        </member>
        <member name="P:Swan.Threading.CancellationTokenOwner.Token">
            <summary>
            Gets the token of the current.
            </summary>
        </member>
        <member name="M:Swan.Threading.CancellationTokenOwner.Cancel">
            <summary>
            Cancels the last referenced token and creates a new token source.
            </summary>
        </member>
        <member name="M:Swan.Threading.CancellationTokenOwner.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.CancellationTokenOwner.Dispose(System.Boolean)">
            <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
            <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
        </member>
        <member name="T:Swan.Threading.ExclusiveTimer">
            <summary>
            A threading <see cref="F:Swan.Threading.ExclusiveTimer._backingTimer"/> implementation that executes at most one cycle at a time
            in a <see cref="T:System.Threading.ThreadPool"/> thread. Callback execution is NOT guaranteed to be carried out
            on the same <see cref="T:System.Threading.ThreadPool"/> thread every time the timer fires.
            </summary>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.#ctor(System.Threading.TimerCallback,System.Object,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.ExclusiveTimer"/> class.
            </summary>
            <param name="timerCallback">The timer callback.</param>
            <param name="state">The state.</param>
            <param name="dueTime">The due time.</param>
            <param name="period">The period.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.#ctor(System.Threading.TimerCallback,System.Object,System.TimeSpan,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.ExclusiveTimer"/> class.
            </summary>
            <param name="timerCallback">The timer callback.</param>
            <param name="state">The state.</param>
            <param name="dueTime">The due time.</param>
            <param name="period">The period.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.#ctor(System.Threading.TimerCallback)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.ExclusiveTimer"/> class.
            </summary>
            <param name="timerCallback">The timer callback.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.#ctor(System.Action,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.ExclusiveTimer"/> class.
            </summary>
            <param name="timerCallback">The timer callback.</param>
            <param name="dueTime">The due time.</param>
            <param name="period">The period.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.#ctor(System.Action,System.TimeSpan,System.TimeSpan)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.ExclusiveTimer"/> class.
            </summary>
            <param name="timerCallback">The timer callback.</param>
            <param name="dueTime">The due time.</param>
            <param name="period">The period.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.#ctor(System.Action)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.ExclusiveTimer"/> class.
            </summary>
            <param name="timerCallback">The timer callback.</param>
        </member>
        <member name="P:Swan.Threading.ExclusiveTimer.IsDisposing">
            <summary>
            Gets a value indicating whether this instance is disposing.
            </summary>
            <value>
              <c>true</c> if this instance is disposing; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Threading.ExclusiveTimer.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
            <value>
              <c>true</c> if this instance is disposed; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.WaitUntil(System.DateTime,System.Threading.CancellationToken)">
            <summary>
            Waits until the time is elapsed.
            </summary>
            <param name="untilDate">The until date.</param>
            <param name="cancellationToken">The cancellation token.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.Wait(System.TimeSpan,System.Threading.CancellationToken)">
            <summary>
            Waits the specified wait time.
            </summary>
            <param name="waitTime">The wait time.</param>
            <param name="cancellationToken">The cancellation token.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.Change(System.Int32,System.Int32)">
            <summary>
            Changes the start time and the interval between method invocations for the internal timer.
            </summary>
            <param name="dueTime">The due time.</param>
            <param name="period">The period.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.Change(System.TimeSpan,System.TimeSpan)">
            <summary>
            Changes the start time and the interval between method invocations for the internal timer.
            </summary>
            <param name="dueTime">The due time.</param>
            <param name="period">The period.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.Resume(System.Int32)">
            <summary>
            Changes the interval between method invocations for the internal timer.
            </summary>
            <param name="period">The period.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.Resume(System.TimeSpan)">
            <summary>
            Changes the interval between method invocations for the internal timer.
            </summary>
            <param name="period">The period.</param>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.Pause">
            <summary>
            Pauses this instance.
            </summary>
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.ExclusiveTimer.InternalCallback(System.Object)">
            <summary>
            Logic that runs every time the timer hits the due time.
            </summary>
            <param name="state">The state.</param>
        </member>
        <member name="T:Swan.Threading.ISyncLocker">
            <summary>
            Defines a generic interface for synchronized locking mechanisms.
            </summary>
        </member>
        <member name="M:Swan.Threading.ISyncLocker.AcquireWriterLock">
            <summary>
            Acquires a writer lock.
            The lock is released when the returned locking object is disposed.
            </summary>
            <returns>A disposable locking object.</returns>
        </member>
        <member name="M:Swan.Threading.ISyncLocker.AcquireReaderLock">
            <summary>
            Acquires a reader lock.
            The lock is released when the returned locking object is disposed.
            </summary>
            <returns>A disposable locking object.</returns>
        </member>
        <member name="T:Swan.Threading.IWaitEvent">
            <summary>
            Provides a generalized API for ManualResetEvent and ManualResetEventSlim.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="P:Swan.Threading.IWaitEvent.IsCompleted">
            <summary>
            Gets a value indicating whether the event is in the completed state.
            </summary>
        </member>
        <member name="P:Swan.Threading.IWaitEvent.IsInProgress">
            <summary>
            Gets a value indicating whether the Begin method has been called.
            It returns false after the Complete method is called.
            </summary>
        </member>
        <member name="P:Swan.Threading.IWaitEvent.IsValid">
            <summary>
            Returns true if the underlying handle is not closed and it is still valid.
            </summary>
        </member>
        <member name="P:Swan.Threading.IWaitEvent.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
        </member>
        <member name="M:Swan.Threading.IWaitEvent.Begin">
            <summary>
            Enters the state in which waiters need to wait.
            All future waiters will block when they call the Wait method.
            </summary>
        </member>
        <member name="M:Swan.Threading.IWaitEvent.Complete">
            <summary>
            Leaves the state in which waiters need to wait.
            All current waiters will continue.
            </summary>
        </member>
        <member name="M:Swan.Threading.IWaitEvent.Wait">
            <summary>
            Waits for the event to be completed.
            </summary>
        </member>
        <member name="M:Swan.Threading.IWaitEvent.Wait(System.TimeSpan)">
            <summary>
            Waits for the event to be completed.
            Returns <c>true</c> when there was no timeout. False if the timeout was reached.
            </summary>
            <param name="timeout">The maximum amount of time to wait for.</param>
            <returns><c>true</c> when there was no timeout. <c>false</c> if the timeout was reached.</returns>
        </member>
        <member name="T:Swan.Threading.IWorker">
            <summary>
            Defines a standard API to control background application workers.
            </summary>
        </member>
        <member name="P:Swan.Threading.IWorker.WorkerState">
            <summary>
            Gets the current state of the worker.
            </summary>
        </member>
        <member name="P:Swan.Threading.IWorker.IsDisposed">
            <summary>
            Gets a value indicating whether this instance is disposed.
            </summary>
            <value>
              <c>true</c> if this instance is disposed; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Threading.IWorker.IsDisposing">
            <summary>
            Gets a value indicating whether this instance is currently being disposed.
            </summary>
            <value>
              <c>true</c> if this instance is disposing; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Threading.IWorker.Period">
            <summary>
            Gets or sets the time interval used to execute cycles.
            </summary>
        </member>
        <member name="P:Swan.Threading.IWorker.Name">
            <summary>
            Gets the name identifier of this worker.
            </summary>
        </member>
        <member name="M:Swan.Threading.IWorker.StartAsync">
            <summary>
            Starts execution of worker cycles.
            </summary>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:Swan.Threading.IWorker.PauseAsync">
            <summary>
            Pauses execution of worker cycles.
            </summary>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:Swan.Threading.IWorker.ResumeAsync">
            <summary>
            Resumes execution of worker cycles.
            </summary>
            <returns>The awaitable task.</returns>
        </member>
        <member name="M:Swan.Threading.IWorker.StopAsync">
            <summary>
            Permanently stops execution of worker cycles.
            An interrupt is always sent to the worker. If you wish to stop
            the worker without interrupting then call the <see cref="M:Swan.Threading.IWorker.PauseAsync"/>
            method, await it, and finally call the <see cref="M:Swan.Threading.IWorker.StopAsync"/> method.
            </summary>
            <returns>The awaitable task.</returns>
        </member>
        <member name="T:Swan.Threading.IWorkerDelayProvider">
            <summary>
            An interface for a worker cycle delay provider.
            </summary>
        </member>
        <member name="M:Swan.Threading.IWorkerDelayProvider.ExecuteCycleDelay(System.Int32,System.Threading.Tasks.Task,System.Threading.CancellationToken)">
            <summary>
            Suspends execution queues a new cycle for execution. The delay is given in
            milliseconds. When overridden in a derived class the wait handle will be set
            whenever an interrupt is received.
            </summary>
            <param name="wantedDelay">The remaining delay to wait for in the cycle.</param>
            <param name="delayTask">Contains a reference to a task with the scheduled period delay.</param>
            <param name="token">The cancellation token to cancel waiting.</param>
        </member>
        <member name="T:Swan.Threading.PeriodicTask">
            <summary>
            Schedule an action to be periodically executed on the thread pool.
            </summary>
        </member>
        <member name="F:Swan.Threading.PeriodicTask.MinInterval">
            <summary>
            <para>The minimum interval between action invocations.</para>
            <para>The value of this field is equal to 100 milliseconds.</para>
            </summary>
        </member>
        <member name="M:Swan.Threading.PeriodicTask.#ctor(System.TimeSpan,System.Func{System.Threading.CancellationToken,System.Threading.Tasks.Task},System.Threading.CancellationToken)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.PeriodicTask"/> class.
            </summary>
            <param name="interval">The interval between invocations of <paramref name="action"/>.</param>
            <param name="action">The callback to invoke periodically.</param>
            <param name="cancellationToken">A <see cref="T:System.Threading.CancellationToken"/> that can be used to cancel operations.</param>
        </member>
        <member name="M:Swan.Threading.PeriodicTask.Finalize">
            <summary>
            Finalizes an instance of the <see cref="T:Swan.Threading.PeriodicTask"/> class.
            </summary>
        </member>
        <member name="P:Swan.Threading.PeriodicTask.Interval">
            <summary>
            <para>Gets or sets the interval between periodic action invocations.</para>
            <para>Changes to this property take effect after next action invocation.</para>
            </summary>
            <seealso cref="F:Swan.Threading.PeriodicTask.MinInterval"/>
        </member>
        <member name="M:Swan.Threading.PeriodicTask.Dispose">
            <inheritdoc />
        </member>
        <member name="T:Swan.Threading.RunnerBase">
            <summary>
            Represents an background worker abstraction with a life cycle and running at a independent thread.
            </summary>
        </member>
        <member name="M:Swan.Threading.RunnerBase.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.RunnerBase"/> class.
            </summary>
            <param name="isEnabled">if set to <c>true</c> [is enabled].</param>
        </member>
        <member name="P:Swan.Threading.RunnerBase.ErrorMessages">
            <summary>
            Gets the error messages.
            </summary>
            <value>
            The error messages.
            </value>
        </member>
        <member name="P:Swan.Threading.RunnerBase.Name">
            <summary>
            Gets the name.
            </summary>
            <value>
            The name.
            </value>
        </member>
        <member name="P:Swan.Threading.RunnerBase.IsRunning">
            <summary>
            Gets a value indicating whether this instance is running.
            </summary>
            <value>
              <c>true</c> if this instance is running; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="P:Swan.Threading.RunnerBase.IsEnabled">
            <summary>
            Gets a value indicating whether this instance is enabled.
            </summary>
            <value>
              <c>true</c> if this instance is enabled; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="M:Swan.Threading.RunnerBase.Start">
            <summary>
            Starts this instance.
            </summary>
        </member>
        <member name="M:Swan.Threading.RunnerBase.Stop">
            <summary>
            Stops this instance.
            </summary>
        </member>
        <member name="M:Swan.Threading.RunnerBase.Dispose">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Threading.RunnerBase.Setup">
            <summary>
            Setups this instance.
            </summary>
        </member>
        <member name="M:Swan.Threading.RunnerBase.Cleanup">
            <summary>
            Cleanups this instance.
            </summary>
        </member>
        <member name="M:Swan.Threading.RunnerBase.OnSetup">
            <summary>
            Called when [setup].
            </summary>
        </member>
        <member name="M:Swan.Threading.RunnerBase.DoBackgroundWork(System.Threading.CancellationToken)">
            <summary>
            Does the background work.
            </summary>
            <param name="cancellationToken">The ct.</param>
        </member>
        <member name="T:Swan.Threading.SyncLockerFactory">
            <summary>
            Provides factory methods to create synchronized reader-writer locks
            that support a generalized locking and releasing api and syntax.
            </summary>
        </member>
        <member name="T:Swan.Threading.SyncLockerFactory.LockHolderType">
            <summary>
            Enumerates the locking operations.
            </summary>
        </member>
        <member name="T:Swan.Threading.SyncLockerFactory.ISyncReleasable">
            <summary>
            Defines methods for releasing locks.
            </summary>
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.ISyncReleasable.ReleaseWriterLock">
            <summary>
            Releases the writer lock.
            </summary>
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.ISyncReleasable.ReleaseReaderLock">
            <summary>
            Releases the reader lock.
            </summary>
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.Create">
            <summary>
            Creates a reader-writer lock backed by a standard ReaderWriterLock.
            </summary>
            <returns>The synchronized locker.</returns>
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.CreateSlim">
            <summary>
            Creates a reader-writer lock backed by a ReaderWriterLockSlim.
            </summary>
            <returns>The synchronized locker.</returns>
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.Create(System.Boolean)">
            <summary>
            Creates a reader-writer lock.
            </summary>
            <param name="useSlim">if set to <c>true</c> it uses the Slim version of a reader-writer lock.</param>
            <returns>The Sync Locker.</returns>
        </member>
        <member name="T:Swan.Threading.SyncLockerFactory.SyncLockReleaser">
            <summary>
            The lock releaser. Calling the dispose method releases the lock entered by the parent SyncLocker.
            </summary>
            <seealso cref="T:System.IDisposable" />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLockReleaser.#ctor(Swan.Threading.SyncLockerFactory.ISyncReleasable,Swan.Threading.SyncLockerFactory.LockHolderType)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.SyncLockerFactory.SyncLockReleaser"/> class.
            </summary>
            <param name="parent">The parent.</param>
            <param name="operation">The operation.</param>
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLockReleaser.Dispose">
            <inheritdoc />
        </member>
        <member name="T:Swan.Threading.SyncLockerFactory.SyncLocker">
            <summary>
            The Sync Locker backed by a ReaderWriterLock.
            </summary>
            <seealso cref="T:Swan.Threading.ISyncLocker" />
            <seealso cref="T:Swan.Threading.SyncLockerFactory.ISyncReleasable" />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLocker.AcquireReaderLock">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLocker.AcquireWriterLock">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLocker.ReleaseWriterLock">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLocker.ReleaseReaderLock">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLocker.Dispose">
            <inheritdoc />
        </member>
        <member name="T:Swan.Threading.SyncLockerFactory.SyncLockerSlim">
            <summary>
            The Sync Locker backed by ReaderWriterLockSlim.
            </summary>
            <seealso cref="T:Swan.Threading.ISyncLocker" />
            <seealso cref="T:Swan.Threading.SyncLockerFactory.ISyncReleasable" />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLockerSlim.AcquireReaderLock">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLockerSlim.AcquireWriterLock">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLockerSlim.ReleaseWriterLock">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLockerSlim.ReleaseReaderLock">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.SyncLockerFactory.SyncLockerSlim.Dispose">
            <inheritdoc />
        </member>
        <member name="T:Swan.Threading.WaitEventFactory">
            <summary>
            Provides a Manual Reset Event factory with a unified API.
            </summary>
            <example>
            The following example shows how to use the WaitEventFactory class.
            <code>
            using Swan.Threading;
            
            public class Example
            {
                // create a WaitEvent using the slim version
                private static readonly IWaitEvent waitEvent = WaitEventFactory.CreateSlim(false);
                
                public static void Main()
                {
                    Task.Factory.StartNew(() =>
                    {
                        DoWork(1);
                    });
                        
                    Task.Factory.StartNew(() =>
                    {
                        DoWork(2);
                    });
                        
                    // send first signal 
                    waitEvent.Complete();
                    waitEvent.Begin();
                        
                    Thread.Sleep(TimeSpan.FromSeconds(2));
                        
                    // send second signal
                    waitEvent.Complete();
                        
                    Terminal.Readline();
                }
                    
                public static void DoWork(int taskNumber)
                {
                    $"Data retrieved:{taskNumber}".WriteLine();
                    waitEvent.Wait();
                         
                    Thread.Sleep(TimeSpan.FromSeconds(2));
                    $"All finished up {taskNumber}".WriteLine();
                }
             }
            </code>
            </example>
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.Create(System.Boolean)">
            <summary>
            Creates a Wait Event backed by a standard ManualResetEvent.
            </summary>
            <param name="isCompleted">if initially set to completed. Generally true.</param>
            <returns>The Wait Event.</returns>
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.CreateSlim(System.Boolean)">
            <summary>
            Creates a Wait Event backed by a ManualResetEventSlim.
            </summary>
            <param name="isCompleted">if initially set to completed. Generally true.</param>
            <returns>The Wait Event.</returns>
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.Create(System.Boolean,System.Boolean)">
            <summary>
            Creates a Wait Event backed by a ManualResetEventSlim.
            </summary>
            <param name="isCompleted">if initially set to completed. Generally true.</param>
            <param name="useSlim">if set to <c>true</c> creates a slim version of the wait event.</param>
            <returns>The Wait Event.</returns>
        </member>
        <member name="T:Swan.Threading.WaitEventFactory.WaitEvent">
            <summary>
            Defines a WaitEvent backed by a ManualResetEvent.
            </summary>
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEvent.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.WaitEventFactory.WaitEvent"/> class.
            </summary>
            <param name="isCompleted">if set to <c>true</c> [is completed].</param>
        </member>
        <member name="P:Swan.Threading.WaitEventFactory.WaitEvent.IsDisposed">
            <inheritdoc />
        </member>
        <member name="P:Swan.Threading.WaitEventFactory.WaitEvent.IsValid">
            <inheritdoc />
        </member>
        <member name="P:Swan.Threading.WaitEventFactory.WaitEvent.IsCompleted">
            <inheritdoc />
        </member>
        <member name="P:Swan.Threading.WaitEventFactory.WaitEvent.IsInProgress">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEvent.Begin">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEvent.Complete">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEvent.System#IDisposable#Dispose">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEvent.Wait">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEvent.Wait(System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="T:Swan.Threading.WaitEventFactory.WaitEventSlim">
            <summary>
            Defines a WaitEvent backed by a ManualResetEventSlim.
            </summary>
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEventSlim.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Threading.WaitEventFactory.WaitEventSlim"/> class.
            </summary>
            <param name="isCompleted">if set to <c>true</c> [is completed].</param>
        </member>
        <member name="P:Swan.Threading.WaitEventFactory.WaitEventSlim.IsDisposed">
            <inheritdoc />
        </member>
        <member name="P:Swan.Threading.WaitEventFactory.WaitEventSlim.IsValid">
            <inheritdoc />
        </member>
        <member name="P:Swan.Threading.WaitEventFactory.WaitEventSlim.IsCompleted">
            <inheritdoc />
        </member>
        <member name="P:Swan.Threading.WaitEventFactory.WaitEventSlim.IsInProgress">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEventSlim.Begin">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEventSlim.Complete">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEventSlim.System#IDisposable#Dispose">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEventSlim.Wait">
            <inheritdoc />
        </member>
        <member name="M:Swan.Threading.WaitEventFactory.WaitEventSlim.Wait(System.TimeSpan)">
            <inheritdoc />
        </member>
        <member name="T:Swan.Threading.WorkerState">
            <summary>
            Enumerates the different states in which a worker can be.
            </summary>
        </member>
        <member name="F:Swan.Threading.WorkerState.Created">
            <summary>
            The worker has been created and it is ready to start.
            </summary>
        </member>
        <member name="F:Swan.Threading.WorkerState.Running">
            <summary>
            The worker is running it cycle logic.
            </summary>
        </member>
        <member name="F:Swan.Threading.WorkerState.Waiting">
            <summary>
            The worker is running its delay logic.
            </summary>
        </member>
        <member name="F:Swan.Threading.WorkerState.Paused">
            <summary>
            The worker is in the paused or suspended state.
            </summary>
        </member>
        <member name="F:Swan.Threading.WorkerState.Stopped">
            <summary>
            The worker is stopped and ready for disposal.
            </summary>
        </member>
        <member name="T:Swan.Validators.IValidator">
            <summary>
            A simple Validator interface.
            </summary>
        </member>
        <member name="P:Swan.Validators.IValidator.ErrorMessage">
            <summary>
            The error message.
            </summary>
        </member>
        <member name="M:Swan.Validators.IValidator.IsValid``1(``0)">
            <summary>
            Checks if a value is valid.
            </summary>
            <typeparam name="T">The type.</typeparam>
            <param name="value"> The value.</param>
            <returns>True if it is valid.False if it is not.</returns>
        </member>
        <member name="T:Swan.Validators.ObjectValidationResult">
            <summary>
            Defines a validation result containing all validation errors and their properties.
            </summary>
        </member>
        <member name="P:Swan.Validators.ObjectValidationResult.Errors">
            <summary>
            A list of errors.
            </summary>
        </member>
        <member name="P:Swan.Validators.ObjectValidationResult.IsValid">
            <summary>
            <c>true</c> if there are no errors; otherwise, <c>false</c>.
            </summary>
        </member>
        <member name="M:Swan.Validators.ObjectValidationResult.Add(System.String,System.String)">
            <summary>
            Adds an error with a specified property name.
            </summary>
            <param name="propertyName">The property name.</param>
            <param name="errorMessage">The error message.</param>
        </member>
        <member name="T:Swan.Validators.ObjectValidationResult.ValidationError">
            <summary>
            Defines a validation error.
            </summary>
        </member>
        <member name="M:Swan.Validators.ObjectValidationResult.ValidationError.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Validators.ObjectValidationResult.ValidationError"/> class.
            </summary>
            <param name="propertyName">Name of the property.</param>
            <param name="errorMessage">The error message.</param>
        </member>
        <member name="P:Swan.Validators.ObjectValidationResult.ValidationError.PropertyName">
            <summary>
            The property name.
            </summary>
        </member>
        <member name="P:Swan.Validators.ObjectValidationResult.ValidationError.ErrorMessage">
            <summary>
            The message error.
            </summary>
        </member>
        <member name="T:Swan.Validators.ObjectValidator">
            <summary>
            Represents an object validator. 
            </summary>
            <example>
            The following code describes how to perform a simple object validation.
            <code>
            using Swan.Validators;
            
            class Example
            {
                public static void Main()
                {
                    // create an instance of ObjectValidator
                    var obj = new ObjectValidator();
                    
                    // Add a validation to the 'Simple' class with a custom error message
                    obj.AddValidator&lt;Simple&gt;(x => 
                        !string.IsNullOrEmpty(x.Name), "Name must not be empty");
                    
                    // check if object is valid
                    var res = obj.IsValid(new Simple { Name = "Name" });
                }
                
                class Simple
                {
                    public string Name { get; set; }
                }
            }
            </code>
            
            The following code shows of to validate an object with a custom validator and some attributes using the Runtime ObjectValidator singleton.
            <code>
            using Swan.Validators;
            
            class Example
            {
                public static void Main()
                {
                    // create an instance of ObjectValidator
                    Runtime.ObjectValidator
                    .AddValidator&lt;Simple&gt;(x => 
                        !x.Name.Equals("Name"), "Name must not be 'Name'");
                        
                    // validate object
                    var res =  Runtime.ObjectValidator
                    .Validate(new Simple{ Name = "name", Number = 5, Email ="email@mail.com"})
                }
                
                class Simple
                {
                    [NotNull]
                    public string Name { get; set; }
                    
                    [Range(1, 10)]
                    public int Number { get; set; }
                    
                    [Email]
                    public string Email { get; set; }
                }
            }
            </code>
            </example>
        </member>
        <member name="P:Swan.Validators.ObjectValidator.Current">
            <summary>
            Gets the current.
            </summary>
            <value>
            The current.
            </value>
        </member>
        <member name="M:Swan.Validators.ObjectValidator.Validate``1(``0)">
            <summary>
            Validates an object given the specified validators and attributes.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="target">The object.</param>
            <returns cref="T:Swan.Validators.ObjectValidationResult">A validation result. </returns>
        </member>
        <member name="M:Swan.Validators.ObjectValidator.IsValid``1(``0)">
            <summary>
            Validates an object given the specified validators and attributes.
            </summary>
            <typeparam name="T">The type.</typeparam>
            <param name="target">The object.</param>
            <returns>
              <c>true</c> if the specified object is valid; otherwise, <c>false</c>.
            </returns>
            <exception cref="T:System.ArgumentNullException">obj.</exception>
        </member>
        <member name="M:Swan.Validators.ObjectValidator.AddValidator``1(System.Predicate{``0},System.String)">
            <summary>
            Adds a validator to a specific class.
            </summary>
            <typeparam name="T">The type of the object.</typeparam>
            <param name="predicate">The predicate that will be evaluated.</param>
            <param name="message">The message.</param>
            <exception cref="T:System.ArgumentNullException">
            predicate
            or
            message.
            </exception>
        </member>
        <member name="T:Swan.Validators.MatchAttribute">
            <summary>
            Regex validator.
            </summary>
        </member>
        <member name="M:Swan.Validators.MatchAttribute.#ctor(System.String,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Validators.MatchAttribute" /> class.
            </summary>
            <param name="regex">A regex string.</param>
            <param name="errorMessage">The error message.</param>
            <exception cref="T:System.ArgumentNullException">Expression.</exception>
        </member>
        <member name="P:Swan.Validators.MatchAttribute.Expression">
            <summary>
            The string regex used to find a match.
            </summary>
        </member>
        <member name="P:Swan.Validators.MatchAttribute.ErrorMessage">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Validators.MatchAttribute.IsValid``1(``0)">
            <inheritdoc/>
        </member>
        <member name="T:Swan.Validators.EmailAttribute">
            <summary>
            Email validator.
            </summary>
        </member>
        <member name="M:Swan.Validators.EmailAttribute.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Validators.EmailAttribute"/> class.
            </summary>
            <param name="errorMessage">The error message.</param>
        </member>
        <member name="T:Swan.Validators.NotNullAttribute">
            <summary>
            A not null validator.
            </summary>
        </member>
        <member name="P:Swan.Validators.NotNullAttribute.ErrorMessage">
            <inheritdoc/>
        </member>
        <member name="M:Swan.Validators.NotNullAttribute.IsValid``1(``0)">
            <inheritdoc/>
        </member>
        <member name="T:Swan.Validators.RangeAttribute">
            <summary>
            A range constraint validator.
            </summary>
        </member>
        <member name="M:Swan.Validators.RangeAttribute.#ctor(System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Validators.RangeAttribute"/> class.
            Constructor that takes integer minimum and maximum values.
            </summary>
            <param name="min">The minimum value.</param>
            <param name="max">The maximum value.</param>
        </member>
        <member name="M:Swan.Validators.RangeAttribute.#ctor(System.Double,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:Swan.Validators.RangeAttribute"/> class.
            Constructor that takes double minimum and maximum values.
            </summary>
            <param name="min">The minimum value.</param>
            <param name="max">The maximum value.</param>
        </member>
        <member name="P:Swan.Validators.RangeAttribute.ErrorMessage">
            <inheritdoc/>
        </member>
        <member name="P:Swan.Validators.RangeAttribute.Maximum">
            <summary>
            Maximum value for the range.
            </summary>
        </member>
        <member name="P:Swan.Validators.RangeAttribute.Minimum">
            <summary>
            Minimum value for the range.
            </summary>
        </member>
        <member name="M:Swan.Validators.RangeAttribute.IsValid``1(``0)">
            <inheritdoc/>
        </member>
    </members>
</doc>
