Migrating to docfx

This commit is contained in:
Jordan Wages 2026-07-01 23:01:00 -05:00
commit bc4c63a7cd
646 changed files with 86228 additions and 27821 deletions

15
CapyKit/.idea/.idea.CapyKit/.idea/.gitignore generated vendored Normal file
View file

@ -0,0 +1,15 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/contentModel.xml
/projectSettingsUpdater.xml
/modules.xml
/.idea.CapyKit.iml
# Editor-based HTTP Client requests
/httpRequests/
# Ignored default folder with query files
/queries/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders>
<Path>../Docs</Path>
</attachedFolders>
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

View file

@ -10,8 +10,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
.editorconfig = .editorconfig
EndProjectSection
EndProject
Project("{7CF6DF6D-3B04-46F8-A40B-537D21BCA0B4}") = "Documentation", "..\Documentation\Documentation.shfbproj", "{E23D3844-E594-487E-979B-2D35B1B9AAE8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "..\Tests\Tests.csproj", "{D142EF3D-8F61-40B6-8358-7D5B7F8A2B18}"
EndProject
Global
@ -24,10 +22,6 @@ Global
{D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1ACE10F-CBC8-4BA8-BB85-11DB4EEE5912}.Release|Any CPU.Build.0 = Release|Any CPU
{E23D3844-E594-487E-979B-2D35B1B9AAE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E23D3844-E594-487E-979B-2D35B1B9AAE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E23D3844-E594-487E-979B-2D35B1B9AAE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E23D3844-E594-487E-979B-2D35B1B9AAE8}.Release|Any CPU.Build.0 = Release|Any CPU
{D142EF3D-8F61-40B6-8358-7D5B7F8A2B18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D142EF3D-8F61-40B6-8358-7D5B7F8A2B18}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D142EF3D-8F61-40B6-8358-7D5B7F8A2B18}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -39,4 +33,6 @@ Global
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AF075174-308F-4D69-9160-C3CCE89EAD68}
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
EndGlobalSection
EndGlobal

View file

@ -0,0 +1,381 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class EnumerationAttribute&lt;T&gt; | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class EnumerationAttribute&lt;T&gt; | CapyKit Documentation ">
<meta name="description" content="Custom attribute class for decorating enumeration fields with additional data.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Attributes.EnumerationAttribute`1">
<h1 id="CapyKit_Attributes_EnumerationAttribute_1" data-uid="CapyKit.Attributes.EnumerationAttribute`1" class="text-break">
Class EnumerationAttribute&lt;T&gt;
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Attributes.html">Attributes</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Custom attribute class for decorating enumeration fields with additional data.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[AttributeUsage(AttributeTargets.Field)]
public abstract class EnumerationAttribute&lt;T&gt; : Attribute</code></pre>
</div>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter allowing for arbitrary declarations and assignments of meaning.</p>
</dd>
</dl>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute">Attribute</a></div>
<div><span class="xref">EnumerationAttribute&lt;T&gt;</span></div>
</dd>
</dl>
<dl class="typelist derived">
<dt>Derived</dt>
<dd>
<div><a class="xref" href="CapyKit.Attributes.EnumerationDescriptionAttribute.html">EnumerationDescriptionAttribute</a></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.equals">Attribute.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-assembly-system-type)">Attribute.GetCustomAttribute(Assembly, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-assembly-system-type-system-boolean)">Attribute.GetCustomAttribute(Assembly, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-memberinfo-system-type)">Attribute.GetCustomAttribute(MemberInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-memberinfo-system-type-system-boolean)">Attribute.GetCustomAttribute(MemberInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-module-system-type)">Attribute.GetCustomAttribute(Module, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-module-system-type-system-boolean)">Attribute.GetCustomAttribute(Module, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-parameterinfo-system-type)">Attribute.GetCustomAttribute(ParameterInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-parameterinfo-system-type-system-boolean)">Attribute.GetCustomAttribute(ParameterInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly)">Attribute.GetCustomAttributes(Assembly)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly-system-boolean)">Attribute.GetCustomAttributes(Assembly, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly-system-type)">Attribute.GetCustomAttributes(Assembly, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly-system-type-system-boolean)">Attribute.GetCustomAttributes(Assembly, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo)">Attribute.GetCustomAttributes(MemberInfo)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo-system-boolean)">Attribute.GetCustomAttributes(MemberInfo, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo-system-type)">Attribute.GetCustomAttributes(MemberInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo-system-type-system-boolean)">Attribute.GetCustomAttributes(MemberInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module)">Attribute.GetCustomAttributes(Module)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module-system-boolean)">Attribute.GetCustomAttributes(Module, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module-system-type)">Attribute.GetCustomAttributes(Module, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module-system-type-system-boolean)">Attribute.GetCustomAttributes(Module, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo)">Attribute.GetCustomAttributes(ParameterInfo)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo-system-boolean)">Attribute.GetCustomAttributes(ParameterInfo, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo-system-type)">Attribute.GetCustomAttributes(ParameterInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo-system-type-system-boolean)">Attribute.GetCustomAttributes(ParameterInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.gethashcode">Attribute.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefaultattribute">Attribute.IsDefaultAttribute()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-assembly-system-type)">Attribute.IsDefined(Assembly, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-assembly-system-type-system-boolean)">Attribute.IsDefined(Assembly, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-memberinfo-system-type)">Attribute.IsDefined(MemberInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-memberinfo-system-type-system-boolean)">Attribute.IsDefined(MemberInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-module-system-type)">Attribute.IsDefined(Module, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-module-system-type-system-boolean)">Attribute.IsDefined(Module, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-parameterinfo-system-type)">Attribute.IsDefined(ParameterInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-parameterinfo-system-type-system-boolean)">Attribute.IsDefined(ParameterInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.match">Attribute.Match(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.typeid">Attribute.TypeId</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="CapyKit_Attributes_EnumerationAttribute_1__ctor_" data-uid="CapyKit.Attributes.EnumerationAttribute`1.#ctor*"></a>
<h3 id="CapyKit_Attributes_EnumerationAttribute_1__ctor__0_" data-uid="CapyKit.Attributes.EnumerationAttribute`1.#ctor(`0)">
EnumerationAttribute(T)
</h3>
<div class="markdown level1 summary"><p>Gets the value of the enumeration represented by this attribute.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected EnumerationAttribute(T value)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>value</code> <span class="xref">T</span></dt>
<dd><p>Initializes a new instance of the <a class="xref" href="CapyKit.Attributes.EnumerationAttribute-1.html">EnumerationAttribute&lt;T&gt;</a> class with a
specified value.</p>
</dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="CapyKit_Attributes_EnumerationAttribute_1_Value_" data-uid="CapyKit.Attributes.EnumerationAttribute`1.Value*"></a>
<h3 id="CapyKit_Attributes_EnumerationAttribute_1_Value" data-uid="CapyKit.Attributes.EnumerationAttribute`1.Value">
Value
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="CapyKit.Attributes.EnumerationAttribute-1.html">EnumerationAttribute&lt;T&gt;</a> class with a
specified value.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public T Value { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>The value.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,339 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class EnumerationDescriptionAttribute | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class EnumerationDescriptionAttribute | CapyKit Documentation ">
<meta name="description" content="An attribute class for decorating enumeration fields with a description.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Attributes.EnumerationDescriptionAttribute">
<h1 id="CapyKit_Attributes_EnumerationDescriptionAttribute" data-uid="CapyKit.Attributes.EnumerationDescriptionAttribute" class="text-break">
Class EnumerationDescriptionAttribute
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Attributes.html">Attributes</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>An attribute class for decorating enumeration fields with a description.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[AttributeUsage(AttributeTargets.Field)]
public class EnumerationDescriptionAttribute : EnumerationAttribute&lt;string&gt;</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute">Attribute</a></div>
<div><a class="xref" href="CapyKit.Attributes.EnumerationAttribute-1.html">EnumerationAttribute</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>&gt;</div>
<div><span class="xref">EnumerationDescriptionAttribute</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Attributes.EnumerationAttribute-1.html#CapyKit_Attributes_EnumerationAttribute_1_Value">EnumerationAttribute&lt;string&gt;.Value</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.equals">Attribute.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-assembly-system-type)">Attribute.GetCustomAttribute(Assembly, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-assembly-system-type-system-boolean)">Attribute.GetCustomAttribute(Assembly, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-memberinfo-system-type)">Attribute.GetCustomAttribute(MemberInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-memberinfo-system-type-system-boolean)">Attribute.GetCustomAttribute(MemberInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-module-system-type)">Attribute.GetCustomAttribute(Module, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-module-system-type-system-boolean)">Attribute.GetCustomAttribute(Module, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-parameterinfo-system-type)">Attribute.GetCustomAttribute(ParameterInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-parameterinfo-system-type-system-boolean)">Attribute.GetCustomAttribute(ParameterInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly)">Attribute.GetCustomAttributes(Assembly)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly-system-boolean)">Attribute.GetCustomAttributes(Assembly, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly-system-type)">Attribute.GetCustomAttributes(Assembly, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly-system-type-system-boolean)">Attribute.GetCustomAttributes(Assembly, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo)">Attribute.GetCustomAttributes(MemberInfo)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo-system-boolean)">Attribute.GetCustomAttributes(MemberInfo, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo-system-type)">Attribute.GetCustomAttributes(MemberInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo-system-type-system-boolean)">Attribute.GetCustomAttributes(MemberInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module)">Attribute.GetCustomAttributes(Module)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module-system-boolean)">Attribute.GetCustomAttributes(Module, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module-system-type)">Attribute.GetCustomAttributes(Module, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module-system-type-system-boolean)">Attribute.GetCustomAttributes(Module, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo)">Attribute.GetCustomAttributes(ParameterInfo)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo-system-boolean)">Attribute.GetCustomAttributes(ParameterInfo, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo-system-type)">Attribute.GetCustomAttributes(ParameterInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo-system-type-system-boolean)">Attribute.GetCustomAttributes(ParameterInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.gethashcode">Attribute.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefaultattribute">Attribute.IsDefaultAttribute()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-assembly-system-type)">Attribute.IsDefined(Assembly, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-assembly-system-type-system-boolean)">Attribute.IsDefined(Assembly, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-memberinfo-system-type)">Attribute.IsDefined(MemberInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-memberinfo-system-type-system-boolean)">Attribute.IsDefined(MemberInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-module-system-type)">Attribute.IsDefined(Module, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-module-system-type-system-boolean)">Attribute.IsDefined(Module, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-parameterinfo-system-type)">Attribute.IsDefined(ParameterInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-parameterinfo-system-type-system-boolean)">Attribute.IsDefined(ParameterInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.match">Attribute.Match(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.typeid">Attribute.TypeId</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="CapyKit_Attributes_EnumerationDescriptionAttribute__ctor_" data-uid="CapyKit.Attributes.EnumerationDescriptionAttribute.#ctor*"></a>
<h3 id="CapyKit_Attributes_EnumerationDescriptionAttribute__ctor_System_String_" data-uid="CapyKit.Attributes.EnumerationDescriptionAttribute.#ctor(System.String)">
EnumerationDescriptionAttribute(string)
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="CapyKit.Attributes.EnumerationDescriptionAttribute.html">EnumerationDescriptionAttribute</a> class with
the specified description.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public EnumerationDescriptionAttribute(string description)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>description</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The description of the enumeration value.</p>
</dd>
</dl>
<h2 id="seealso">See Also</h2>
<div class="seealso">
<div><a class="xref" href="CapyKit.Attributes.EnumerationAttribute-1.html">EnumerationAttribute</a>&lt;T&gt;</div>
</div>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,439 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class ValueFormatAttribute | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class ValueFormatAttribute | CapyKit Documentation ">
<meta name="description" content="Custom attribute for formatting values in a specific way.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Attributes.ValueFormatAttribute">
<h1 id="CapyKit_Attributes_ValueFormatAttribute" data-uid="CapyKit.Attributes.ValueFormatAttribute" class="text-break">
Class ValueFormatAttribute
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Attributes.html">Attributes</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Custom attribute for formatting values in a specific way.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">[AttributeUsage(AttributeTargets.Property)]
public class ValueFormatAttribute : Attribute</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute">Attribute</a></div>
<div><span class="xref">ValueFormatAttribute</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.equals">Attribute.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-assembly-system-type)">Attribute.GetCustomAttribute(Assembly, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-assembly-system-type-system-boolean)">Attribute.GetCustomAttribute(Assembly, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-memberinfo-system-type)">Attribute.GetCustomAttribute(MemberInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-memberinfo-system-type-system-boolean)">Attribute.GetCustomAttribute(MemberInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-module-system-type)">Attribute.GetCustomAttribute(Module, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-module-system-type-system-boolean)">Attribute.GetCustomAttribute(Module, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-parameterinfo-system-type)">Attribute.GetCustomAttribute(ParameterInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattribute#system-attribute-getcustomattribute(system-reflection-parameterinfo-system-type-system-boolean)">Attribute.GetCustomAttribute(ParameterInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly)">Attribute.GetCustomAttributes(Assembly)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly-system-boolean)">Attribute.GetCustomAttributes(Assembly, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly-system-type)">Attribute.GetCustomAttributes(Assembly, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-assembly-system-type-system-boolean)">Attribute.GetCustomAttributes(Assembly, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo)">Attribute.GetCustomAttributes(MemberInfo)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo-system-boolean)">Attribute.GetCustomAttributes(MemberInfo, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo-system-type)">Attribute.GetCustomAttributes(MemberInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-memberinfo-system-type-system-boolean)">Attribute.GetCustomAttributes(MemberInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module)">Attribute.GetCustomAttributes(Module)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module-system-boolean)">Attribute.GetCustomAttributes(Module, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module-system-type)">Attribute.GetCustomAttributes(Module, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-module-system-type-system-boolean)">Attribute.GetCustomAttributes(Module, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo)">Attribute.GetCustomAttributes(ParameterInfo)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo-system-boolean)">Attribute.GetCustomAttributes(ParameterInfo, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo-system-type)">Attribute.GetCustomAttributes(ParameterInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.getcustomattributes#system-attribute-getcustomattributes(system-reflection-parameterinfo-system-type-system-boolean)">Attribute.GetCustomAttributes(ParameterInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.gethashcode">Attribute.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefaultattribute">Attribute.IsDefaultAttribute()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-assembly-system-type)">Attribute.IsDefined(Assembly, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-assembly-system-type-system-boolean)">Attribute.IsDefined(Assembly, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-memberinfo-system-type)">Attribute.IsDefined(MemberInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-memberinfo-system-type-system-boolean)">Attribute.IsDefined(MemberInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-module-system-type)">Attribute.IsDefined(Module, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-module-system-type-system-boolean)">Attribute.IsDefined(Module, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-parameterinfo-system-type)">Attribute.IsDefined(ParameterInfo, Type)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.isdefined#system-attribute-isdefined(system-reflection-parameterinfo-system-type-system-boolean)">Attribute.IsDefined(ParameterInfo, Type, bool)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.match">Attribute.Match(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.attribute.typeid">Attribute.TypeId</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="CapyKit_Attributes_ValueFormatAttribute__ctor_" data-uid="CapyKit.Attributes.ValueFormatAttribute.#ctor*"></a>
<h3 id="CapyKit_Attributes_ValueFormatAttribute__ctor" data-uid="CapyKit.Attributes.ValueFormatAttribute.#ctor">
ValueFormatAttribute()
</h3>
<div class="markdown level1 summary"><p>Default constructor. Initializes a new instance of the <a class="xref" href="CapyKit.Attributes.ValueFormatAttribute.html">ValueFormatAttribute</a>
class with an empty format string.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ValueFormatAttribute()</code></pre>
</div>
<a id="CapyKit_Attributes_ValueFormatAttribute__ctor_" data-uid="CapyKit.Attributes.ValueFormatAttribute.#ctor*"></a>
<h3 id="CapyKit_Attributes_ValueFormatAttribute__ctor_System_String_" data-uid="CapyKit.Attributes.ValueFormatAttribute.#ctor(System.String)">
ValueFormatAttribute(string)
</h3>
<div class="markdown level1 summary"><p>Constructor. Initializes a new instance of the <a class="xref" href="CapyKit.Attributes.ValueFormatAttribute.html">ValueFormatAttribute</a> class with
the specified format string.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public ValueFormatAttribute(string format)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>format</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The format string used to format the value.</p>
</dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="CapyKit_Attributes_ValueFormatAttribute_Format_" data-uid="CapyKit.Attributes.ValueFormatAttribute.Format*"></a>
<h3 id="CapyKit_Attributes_ValueFormatAttribute_Format" data-uid="CapyKit.Attributes.ValueFormatAttribute.Format">
Format
</h3>
<div class="markdown level1 summary"><p>Gets or sets the format to use for formatting the value.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string Format { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The format string used to format the value.</p>
</dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Attributes_ValueFormatAttribute_GetFormatParameterizedString_" data-uid="CapyKit.Attributes.ValueFormatAttribute.GetFormatParameterizedString*"></a>
<h3 id="CapyKit_Attributes_ValueFormatAttribute_GetFormatParameterizedString_System_Int32_" data-uid="CapyKit.Attributes.ValueFormatAttribute.GetFormatParameterizedString(System.Int32)">
GetFormatParameterizedString(int)
</h3>
<div class="markdown level1 summary"><p>Gets a parameterized formatted string for the specified index.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string GetFormatParameterizedString(int index = 0)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>index</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>(Optional) Zero-based index of the item in the string to format.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A formatted string with the specified index and format.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,137 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Namespace CapyKit.Attributes | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Namespace CapyKit.Attributes | CapyKit Documentation ">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Attributes">
<h1 id="CapyKit_Attributes" data-uid="CapyKit.Attributes" class="text-break">Namespace CapyKit.Attributes</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>
<div class="markdown level0 remarks"></div>
<h3 id="classes">
Classes
</h3>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Attributes.EnumerationAttribute-1.html">EnumerationAttribute&lt;T&gt;</a></dt>
<dd><p>Custom attribute class for decorating enumeration fields with additional data.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Attributes.EnumerationDescriptionAttribute.html">EnumerationDescriptionAttribute</a></dt>
<dd><p>An attribute class for decorating enumeration fields with a description.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Attributes.ValueFormatAttribute.html">ValueFormatAttribute</a></dt>
<dd><p>Custom attribute for formatting values in a specific way.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,334 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class CapyEventArgs | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class CapyEventArgs | CapyKit Documentation ">
<meta name="description" content="The CapyEventArgs class represents an event argument instance with event level, message, and method name information.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.CapyEventArgs">
<h1 id="CapyKit_CapyEventArgs" data-uid="CapyKit.CapyEventArgs" class="text-break">
Class CapyEventArgs
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>The CapyEventArgs class represents an event argument instance with event level, message, and
method name information.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class CapyEventArgs : EventArgs</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.eventargs">EventArgs</a></div>
<div><span class="xref">CapyEventArgs</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.eventargs.empty">EventArgs.Empty</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="CapyKit_CapyEventArgs__ctor_" data-uid="CapyKit.CapyEventArgs.#ctor*"></a>
<h3 id="CapyKit_CapyEventArgs__ctor_CapyKit_EventLevel_System_String_System_String_" data-uid="CapyKit.CapyEventArgs.#ctor(CapyKit.EventLevel,System.String,System.String)">
CapyEventArgs(EventLevel, string, string)
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the CapyEventArgs class with the specified event level, message, and method name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public CapyEventArgs(EventLevel level, string message, string method = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>level</code> <a class="xref" href="CapyKit.EventLevel.html">EventLevel</a></dt>
<dd><p>The severity level of the event.</p>
</dd>
<dt><code>message</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A descriptive message explaining the reason for the event.</p>
</dd>
<dt><code>method</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The name of the method where the event was raised.</p>
</dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="CapyKit_CapyEventArgs_Level_" data-uid="CapyKit.CapyEventArgs.Level*"></a>
<h3 id="CapyKit_CapyEventArgs_Level" data-uid="CapyKit.CapyEventArgs.Level">
Level
</h3>
<div class="markdown level1 summary"><p>Gets the severity level of the event.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public EventLevel Level { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="CapyKit.EventLevel.html">EventLevel</a></dt>
<dd></dd>
</dl>
<a id="CapyKit_CapyEventArgs_Message_" data-uid="CapyKit.CapyEventArgs.Message*"></a>
<h3 id="CapyKit_CapyEventArgs_Message" data-uid="CapyKit.CapyEventArgs.Message">
Message
</h3>
<div class="markdown level1 summary"><p>Gets the message describing the reason for the event.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string Message { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<a id="CapyKit_CapyEventArgs_MethodName_" data-uid="CapyKit.CapyEventArgs.MethodName*"></a>
<h3 id="CapyKit_CapyEventArgs_MethodName" data-uid="CapyKit.CapyEventArgs.MethodName">
MethodName
</h3>
<div class="markdown level1 summary"><p>Gets the name of the method where the event was raised.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string MethodName { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,160 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Delegate CapyEventHandler | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Delegate CapyEventHandler | CapyKit Documentation ">
<meta name="description" content="A delegate representing an event handler that accepts a instance.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.CapyEventHandler">
<h1 id="CapyKit_CapyEventHandler" data-uid="CapyKit.CapyEventHandler" class="text-break">
Delegate CapyEventHandler
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>A delegate representing an event handler that accepts a <a class="xref" href="CapyKit.CapyEventArgs.html">CapyEventArgs</a> instance.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public delegate void CapyEventHandler(CapyEventArgs e)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>e</code> <a class="xref" href="CapyKit.CapyEventArgs.html">CapyEventArgs</a></dt>
<dd><p>The CapyEventArgs instance containing event data.</p>
</dd>
</dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,380 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class CapyEventReporter | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class CapyEventReporter | CapyKit Documentation ">
<meta name="description" content="The CapyEventReporter class is responsible for managing event subscriptions and emissions within CapyKit.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.CapyEventReporter">
<h1 id="CapyKit_CapyEventReporter" data-uid="CapyKit.CapyEventReporter" class="text-break">
Class CapyEventReporter
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>The CapyEventReporter class is responsible for managing event subscriptions and emissions within CapyKit.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class CapyEventReporter</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">CapyEventReporter</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 id="CapyKit_CapyEventReporter_remarks">Remarks</h2>
<div class="markdown level0 remarks"><p>Because consumers of CapyKit may have varied ways of handling logging, the <a class="xref" href="CapyKit.CapyEventReporter.html">CapyEventReporter</a> provides
a way for subscribers to recieve events for various &quot;events&quot; within the library. These can be thought of as
a logging solution for CapyKit. Consumers are free to treat these events however they see fit.</p>
</div>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_CapyEventReporter_EmitEvent_" data-uid="CapyKit.CapyEventReporter.EmitEvent*"></a>
<h3 id="CapyKit_CapyEventReporter_EmitEvent_CapyKit_EventLevel_System_String_System_String_System_Object___" data-uid="CapyKit.CapyEventReporter.EmitEvent(CapyKit.EventLevel,System.String,System.String,System.Object[])">
EmitEvent(EventLevel, string, string, params object[])
</h3>
<div class="markdown level1 summary"><p>Emits an event with the given severity level, message, and method name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void EmitEvent(EventLevel eventLevel, string message, string method = null, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>eventLevel</code> <a class="xref" href="CapyKit.EventLevel.html">EventLevel</a></dt>
<dd><p>The severity level of the event.</p>
</dd>
<dt><code>message</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The message describing the reason for the event. String formatting for <code class="paramref">args</code>
is accepted.</p>
</dd>
<dt><code>method</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>(Optional) The name of the method where the event was raised.</p>
</dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>A variable-length parameters list containing arguments for formatting the message.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_CapyEventReporter_EmitEvent_CapyKit_EventLevel_System_String_System_String_System_Object____examples">Examples</h4>
<pre><code class="lang-csharp">CapyEventReporter.EmitEvent(EventLevel.Error, "Could not find the description for {0}.", args: new[] { enumeration });</code></pre>
<h4 class="section" id="CapyKit_CapyEventReporter_EmitEvent_CapyKit_EventLevel_System_String_System_String_System_Object____remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>In order to allow for efficient calling member access via <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.runtime.compilerservices.callermembernameattribute">CallerMemberNameAttribute</a>
, it is suggested that <code class="paramref">args</code> is defined explicitly for formatted messages.</p>
</div>
<dl class="typelist seealso">
<dt>See Also</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.runtime.compilerservices.callermembernameattribute">CallerMemberNameAttribute</a></div>
</dd>
</dl>
<a id="CapyKit_CapyEventReporter_EmitEventOnce_" data-uid="CapyKit.CapyEventReporter.EmitEventOnce*"></a>
<h3 id="CapyKit_CapyEventReporter_EmitEventOnce_CapyKit_EventLevel_System_String_System_String_System_String_System_Object___" data-uid="CapyKit.CapyEventReporter.EmitEventOnce(CapyKit.EventLevel,System.String,System.String,System.String,System.Object[])">
EmitEventOnce(EventLevel, string, string, string, params object[])
</h3>
<div class="markdown level1 summary"><p>Emits an event with the given severity level, message, unique identifier, and method name one
time.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void EmitEventOnce(EventLevel eventLevel, string message, string uniqueIdentifier, string method = null, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>eventLevel</code> <a class="xref" href="CapyKit.EventLevel.html">EventLevel</a></dt>
<dd><p>The severity level of the event.</p>
</dd>
<dt><code>message</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The message describing the reason for the event. String formatting for <code class="paramref">args</code>
is accepted.</p>
</dd>
<dt><code>uniqueIdentifier</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A unique identifier for the event emission.</p>
</dd>
<dt><code>method</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>(Optional) The name of the method where the event was raised.</p>
</dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>A variable-length parameters list containing arguments for formatting the message.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_CapyEventReporter_EmitEventOnce_CapyKit_EventLevel_System_String_System_String_System_String_System_Object____remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>This method is similar to EmitEvent(EventLevel, string, string, string, object[])
, but requires a unique identifier (such as a <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.guid">Guid</a>) to prevent duplicate
emissions.</p>
</div>
<dl class="typelist seealso">
<dt>See Also</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.runtime.compilerservices.callermembernameattribute">CallerMemberNameAttribute</a></div>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.guid">Guid</a></div>
</dd>
</dl>
<a id="CapyKit_CapyEventReporter_Subscribe_" data-uid="CapyKit.CapyEventReporter.Subscribe*"></a>
<h3 id="CapyKit_CapyEventReporter_Subscribe_CapyKit_CapyEventHandler_CapyKit_EventLevel_System_String_" data-uid="CapyKit.CapyEventReporter.Subscribe(CapyKit.CapyEventHandler,CapyKit.EventLevel,System.String)">
Subscribe(CapyEventHandler, EventLevel, string)
</h3>
<div class="markdown level1 summary"><p>Subscribes the specified event handler to the event with the given subscription level and
origin.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void Subscribe(CapyEventHandler callback, EventLevel subscriptionLevel, string origin = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>callback</code> <a class="xref" href="CapyKit.CapyEventHandler.html">CapyEventHandler</a></dt>
<dd><p>The event handler to subscribe.</p>
</dd>
<dt><code>subscriptionLevel</code> <a class="xref" href="CapyKit.EventLevel.html">EventLevel</a></dt>
<dd><p>The severity level of the event to subscribe to.</p>
</dd>
<dt><code>origin</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>(Optional) The name of the method or class where the subscription is made.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_CapyEventReporter_Subscribe_CapyKit_CapyEventHandler_CapyKit_EventLevel_System_String__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>If there is no existing list for the given subscription level, a new list is created and
added to the dictionary.</p>
</div>
<a id="CapyKit_CapyEventReporter_Unsubscribe_" data-uid="CapyKit.CapyEventReporter.Unsubscribe*"></a>
<h3 id="CapyKit_CapyEventReporter_Unsubscribe_CapyKit_CapyEventHandler_System_String_" data-uid="CapyKit.CapyEventReporter.Unsubscribe(CapyKit.CapyEventHandler,System.String)">
Unsubscribe(CapyEventHandler, string)
</h3>
<div class="markdown level1 summary"><p>Unsubscribes the specified event handler from the event with the given origin.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void Unsubscribe(CapyEventHandler callback, string origin)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>callback</code> <a class="xref" href="CapyKit.CapyEventHandler.html">CapyEventHandler</a></dt>
<dd><p>The event handler to unsubscribe.</p>
</dd>
<dt><code>origin</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The name of the method or class where the subscription was made.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,186 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class Color | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class Color | CapyKit Documentation ">
<meta name="description" content="An object representing a color.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Color">
<h1 id="CapyKit_Color" data-uid="CapyKit.Color" class="text-break">
Class Color
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>An object representing a color.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class Color</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">Color</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,225 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class EncryptedValue&lt;T&gt; | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class EncryptedValue&lt;T&gt; | CapyKit Documentation ">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.EncryptedValue`1">
<h1 id="CapyKit_EncryptedValue_1" data-uid="CapyKit.EncryptedValue`1" class="text-break">
Class EncryptedValue&lt;T&gt;
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class EncryptedValue&lt;T&gt;</code></pre>
</div>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd></dd>
</dl>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">EncryptedValue&lt;T&gt;</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="CapyKit_EncryptedValue_1_Value_" data-uid="CapyKit.EncryptedValue`1.Value*"></a>
<h3 id="CapyKit_EncryptedValue_1_Value" data-uid="CapyKit.EncryptedValue`1.Value">
Value
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public T Value { get; set; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,183 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Enum MeasurementSystem | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Enum MeasurementSystem | CapyKit Documentation ">
<meta name="description" content="An enumeration representing different measurement systems.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Enumerations.MeasurementSystem">
<h1 id="CapyKit_Enumerations_MeasurementSystem" data-uid="CapyKit.Enumerations.MeasurementSystem" class="text-break">
Enum MeasurementSystem
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Enumerations.html">Enumerations</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>An enumeration representing different measurement systems.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public enum MeasurementSystem</code></pre>
</div>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_Parse__1___0_System_String_">EnumerationExtensions.Parse&lt;T&gt;(T, string)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_Parse__1___0_System_String_System_Boolean_">EnumerationExtensions.Parse&lt;T&gt;(T, string, bool)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetDescription_System_Enum_">EnumerationExtensions.GetDescription(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetName_System_Enum_">EnumerationExtensions.GetName(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetPrettyName_System_Enum_">EnumerationExtensions.GetPrettyName(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetValue_System_Enum_">EnumerationExtensions.GetValue(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 id="fields">Fields
</h2>
<dl class="parameters">
<dt id="CapyKit_Enumerations_MeasurementSystem_Imperial"><code>Imperial = 0</code></dt>
<dd><p>The imperial measurement system.</p>
</dd>
<dt id="CapyKit_Enumerations_MeasurementSystem_Metric"><code>Metric = 1</code></dt>
<dd><p>The metric measurement system.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,127 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Namespace CapyKit.Enumerations | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Namespace CapyKit.Enumerations | CapyKit Documentation ">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Enumerations">
<h1 id="CapyKit_Enumerations" data-uid="CapyKit.Enumerations" class="text-break">Namespace CapyKit.Enumerations</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>
<div class="markdown level0 remarks"></div>
<h3 id="enums">
Enums
</h3>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Enumerations.MeasurementSystem.html">MeasurementSystem</a></dt>
<dd><p>An enumeration representing different measurement systems.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,200 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Enum EventLevel | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Enum EventLevel | CapyKit Documentation ">
<meta name="description" content="Enumeration representing different event level severity values.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.EventLevel">
<h1 id="CapyKit_EventLevel" data-uid="CapyKit.EventLevel" class="text-break">
Enum EventLevel
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Enumeration representing different event level severity values.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public enum EventLevel</code></pre>
</div>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_Parse__1___0_System_String_">EnumerationExtensions.Parse&lt;T&gt;(T, string)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_Parse__1___0_System_String_System_Boolean_">EnumerationExtensions.Parse&lt;T&gt;(T, string, bool)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetDescription_System_Enum_">EnumerationExtensions.GetDescription(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetName_System_Enum_">EnumerationExtensions.GetName(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetPrettyName_System_Enum_">EnumerationExtensions.GetPrettyName(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetValue_System_Enum_">EnumerationExtensions.GetValue(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 id="fields">Fields
</h2>
<dl class="parameters">
<dt id="CapyKit_EventLevel_Critical"><code>[EnumerationDescription(&quot;Represents a critical error that requires immediate attention.&quot;)]
Critical = 0</code></dt>
<dd><p>Represents a critical error that requires immediate attention.</p>
</dd>
<dt id="CapyKit_EventLevel_Debug"><code>[EnumerationDescription(&quot;Represents detailed messages that are typically used for debugging purposes.&quot;)]
Debug = 4</code></dt>
<dd><p>Represents detailed messages that are typically used for debugging purposes.</p>
</dd>
<dt id="CapyKit_EventLevel_Error"><code>[EnumerationDescription(&quot;Represents an error that prevents the normal execution of the application.&quot;)]
Error = 1</code></dt>
<dd><p>Represents an error that prevents the normal execution of the application.</p>
</dd>
<dt id="CapyKit_EventLevel_Information"><code>[EnumerationDescription(&quot;Represents informational messages that provide useful context to the consumer.&quot;)]
Information = 3</code></dt>
<dd><p>Represents informational messages that provide useful context to the consumer.</p>
</dd>
<dt id="CapyKit_EventLevel_Warning"><code>[EnumerationDescription(&quot;Represents a warning indicating a non-critical issue that should be addressed.&quot;)]
Warning = 2</code></dt>
<dd><p>Represents a warning indicating a non-critical issue that should be addressed.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,435 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class EnumerationExtensions | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class EnumerationExtensions | CapyKit Documentation ">
<meta name="description" content="Provides static extentions methods for providing additional functionality for types.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Extensions.EnumerationExtensions">
<h1 id="CapyKit_Extensions_EnumerationExtensions" data-uid="CapyKit.Extensions.EnumerationExtensions" class="text-break">
Class EnumerationExtensions
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Extensions.html">Extensions</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Provides static extentions methods for providing additional functionality for <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a> types.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class EnumerationExtensions</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">EnumerationExtensions</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Extensions_EnumerationExtensions_GetDescription_" data-uid="CapyKit.Extensions.EnumerationExtensions.GetDescription*"></a>
<h3 id="CapyKit_Extensions_EnumerationExtensions_GetDescription_System_Enum_" data-uid="CapyKit.Extensions.EnumerationExtensions.GetDescription(System.Enum)">
GetDescription(Enum)
</h3>
<div class="markdown level1 summary"><p>An <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a> extension method that gets a description.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string GetDescription(this Enum enumeration)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>enumeration</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a></dt>
<dd><p>The enumeration to act on.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The description if available, otherwise the string representation of the enumeration.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_EnumerationExtensions_GetName_" data-uid="CapyKit.Extensions.EnumerationExtensions.GetName*"></a>
<h3 id="CapyKit_Extensions_EnumerationExtensions_GetName_System_Enum_" data-uid="CapyKit.Extensions.EnumerationExtensions.GetName(System.Enum)">
GetName(Enum)
</h3>
<div class="markdown level1 summary"><p>An <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a> extension method that gets a name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string GetName(this Enum enumeration)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>enumeration</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a></dt>
<dd><p>The enumeration to act on.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The name of the enumeration.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_EnumerationExtensions_GetPrettyName_" data-uid="CapyKit.Extensions.EnumerationExtensions.GetPrettyName*"></a>
<h3 id="CapyKit_Extensions_EnumerationExtensions_GetPrettyName_System_Enum_" data-uid="CapyKit.Extensions.EnumerationExtensions.GetPrettyName(System.Enum)">
GetPrettyName(Enum)
</h3>
<div class="markdown level1 summary"><p>An <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a> extension method that gets a human readable name.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string GetPrettyName(this Enum enumeration)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>enumeration</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a></dt>
<dd><p>The enumeration to act on.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The human readable name of the enumeration.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_EnumerationExtensions_GetValue_" data-uid="CapyKit.Extensions.EnumerationExtensions.GetValue*"></a>
<h3 id="CapyKit_Extensions_EnumerationExtensions_GetValue_System_Enum_" data-uid="CapyKit.Extensions.EnumerationExtensions.GetValue(System.Enum)">
GetValue(Enum)
</h3>
<div class="markdown level1 summary"><p>An <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a> extension method that gets an integer value representing the enumation.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static int GetValue(this Enum enumeration)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>enumeration</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a></dt>
<dd><p>The enumeration to act on.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The integer value of the enumeration.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_EnumerationExtensions_Parse_" data-uid="CapyKit.Extensions.EnumerationExtensions.Parse*"></a>
<h3 id="CapyKit_Extensions_EnumerationExtensions_Parse__1___0_System_String_" data-uid="CapyKit.Extensions.EnumerationExtensions.Parse``1(``0,System.String)">
Parse&lt;T&gt;(T, string)
</h3>
<div class="markdown level1 summary"><p>A <code class="typeparamref">T</code> extension method that parses a string into an enumeration.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T Parse&lt;T&gt;(this T enumeration, string value) where T : Enum</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>enumeration</code> <span class="xref">T</span></dt>
<dd><p>The enumeration to act on.</p>
</dd>
<dt><code>value</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The value.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>A T.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_EnumerationExtensions_Parse_" data-uid="CapyKit.Extensions.EnumerationExtensions.Parse*"></a>
<h3 id="CapyKit_Extensions_EnumerationExtensions_Parse__1___0_System_String_System_Boolean_" data-uid="CapyKit.Extensions.EnumerationExtensions.Parse``1(``0,System.String,System.Boolean)">
Parse&lt;T&gt;(T, string, bool)
</h3>
<div class="markdown level1 summary"><p>A <code class="typeparamref">T</code> extension method that parses a string into an enumeration.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T Parse&lt;T&gt;(this T enumeration, string value, bool ignoreCase) where T : Enum</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>enumeration</code> <span class="xref">T</span></dt>
<dd><p>The enumeration to act on.</p>
</dd>
<dt><code>value</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The string value of the <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a>.</p>
</dd>
<dt><code>ignoreCase</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>True to ignore case.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>A T.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,699 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class LINQExtensions | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class LINQExtensions | CapyKit Documentation ">
<meta name="description" content="Provides static extension methods for performing common LINQ operations on and collections.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Extensions.LINQExtensions">
<h1 id="CapyKit_Extensions_LINQExtensions" data-uid="CapyKit.Extensions.LINQExtensions" class="text-break">
Class LINQExtensions
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Extensions.html">Extensions</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Provides static extension methods for performing common LINQ operations on <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable&lt;T&gt;</a> and <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable&lt;T&gt;</a> collections.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class LINQExtensions</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">LINQExtensions</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Extensions_LINQExtensions_Distinct_" data-uid="CapyKit.Extensions.LINQExtensions.Distinct*"></a>
<h3 id="CapyKit_Extensions_LINQExtensions_Distinct__2_System_Collections_Generic_IEnumerable___0__System_Func___0___1__" data-uid="CapyKit.Extensions.LINQExtensions.Distinct``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})">
Distinct&lt;T, U&gt;(IEnumerable&lt;T&gt;, Func&lt;T, U&gt;)
</h3>
<div class="markdown level1 summary"><p>Enumerates distinct items in this collection as defined by the key <code class="paramref">property</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; Distinct&lt;T, U&gt;(this IEnumerable&lt;T&gt; items, Func&lt;T, U&gt; property)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>items</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</dt>
<dd><p>The items to act on.</p>
</dd>
<dt><code>property</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;T, U&gt;</dt>
<dd><p>The property.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</dt>
<dd><p>An enumerator that allows foreach to be used to process distinct items in this collection.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter of the parent object.</p>
</dd>
<dt><code>U</code></dt>
<dd><p>Generic type parameter property value.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_LINQExtensions_Filter_" data-uid="CapyKit.Extensions.LINQExtensions.Filter*"></a>
<h3 id="CapyKit_Extensions_LINQExtensions_Filter__1_System_Collections_Generic_IEnumerable___0__System_Func___0_System_Boolean__" data-uid="CapyKit.Extensions.LINQExtensions.Filter``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})">
Filter&lt;T&gt;(IEnumerable&lt;T&gt;, Func&lt;T, bool&gt;)
</h3>
<div class="markdown level1 summary"><p>Filters out items matching a <code class="paramref">predicate</code> from the collection.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; Filter&lt;T&gt;(this IEnumerable&lt;T&gt; source, Func&lt;T, bool&gt; predicate)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>source</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</dt>
<dd><p>The source to act on.</p>
</dd>
<dt><code>predicate</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;T, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>&gt;</dt>
<dd><p>The predicate.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</dt>
<dd><p>An enumerator that allows foreach to be used to process remove in this collection.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_LINQExtensions_Filter_" data-uid="CapyKit.Extensions.LINQExtensions.Filter*"></a>
<h3 id="CapyKit_Extensions_LINQExtensions_Filter__1_System_Linq_IQueryable___0__System_Linq_Expressions_Expression_System_Func___0_System_Boolean___" data-uid="CapyKit.Extensions.LINQExtensions.Filter``1(System.Linq.IQueryable{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
Filter&lt;T&gt;(IQueryable&lt;T&gt;, Expression&lt;Func&lt;T, bool&gt;&gt;)
</h3>
<div class="markdown level1 summary"><p>Filters out items matching a <code class="paramref">predicate</code> from the collection.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static IQueryable&lt;T&gt; Filter&lt;T&gt;(this IQueryable&lt;T&gt; source, Expression&lt;Func&lt;T, bool&gt;&gt; predicate)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>source</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;T&gt;</dt>
<dd><p>The source to act on.</p>
</dd>
<dt><code>predicate</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.expressions.expression-1">Expression</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;T, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>&gt;&gt;</dt>
<dd><p>The predicate.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;T&gt;</dt>
<dd><p>An enumerator that allows foreach to be used to process remove in this collection.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_LINQExtensions_LeftOuterJoin_" data-uid="CapyKit.Extensions.LINQExtensions.LeftOuterJoin*"></a>
<h3 id="CapyKit_Extensions_LINQExtensions_LeftOuterJoin__4_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEnumerable___1__System_Func___0___2__System_Func___1___2__System_Func___0_System_Collections_Generic_IEnumerable___1____3__System_Func___0___1__" data-uid="CapyKit.Extensions.LINQExtensions.LeftOuterJoin``4(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3},System.Func{``0,``1})">
LeftOuterJoin&lt;T, U, TKey, R&gt;(IEnumerable&lt;T&gt;, IEnumerable&lt;U&gt;, Func&lt;T, TKey&gt;, Func&lt;U, TKey&gt;, Func&lt;T, IEnumerable&lt;U&gt;, R&gt;, Func&lt;T, U&gt;)
</h3>
<div class="markdown level1 summary"><p>An IEnumable&lt;T&gt; extension method that left outer join.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static IEnumerable&lt;R&gt; LeftOuterJoin&lt;T, U, TKey, R&gt;(this IEnumerable&lt;T&gt; source, IEnumerable&lt;U&gt; inner, Func&lt;T, TKey&gt; outerSelector, Func&lt;U, TKey&gt; innerSelector, Func&lt;T, IEnumerable&lt;U&gt;, R&gt; resultSelector, Func&lt;T, U&gt; defaultGenerator = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>source</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</dt>
<dd><p>The source to act on.</p>
</dd>
<dt><code>inner</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;U&gt;</dt>
<dd><p>The inner.</p>
</dd>
<dt><code>outerSelector</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;T, TKey&gt;</dt>
<dd><p>The outer selector.</p>
</dd>
<dt><code>innerSelector</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;U, TKey&gt;</dt>
<dd><p>The inner selector.</p>
</dd>
<dt><code>resultSelector</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-3">Func</a>&lt;T, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;U&gt;, R&gt;</dt>
<dd><p>The result selector.</p>
</dd>
<dt><code>defaultGenerator</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;T, U&gt;</dt>
<dd><p>(Optional) The default generator.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;R&gt;</dt>
<dd><p>An enumerator that allows foreach to be used to process left outter join in this collection.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
<dt><code>U</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
<dt><code>TKey</code></dt>
<dd><p>Type of the key.</p>
</dd>
<dt><code>R</code></dt>
<dd><p>Type of the r.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_LINQExtensions_LeftOuterJoin_" data-uid="CapyKit.Extensions.LINQExtensions.LeftOuterJoin*"></a>
<h3 id="CapyKit_Extensions_LINQExtensions_LeftOuterJoin__4_System_Linq_IQueryable___0__System_Linq_IQueryable___1__System_Linq_Expressions_Expression_System_Func___0___2___System_Linq_Expressions_Expression_System_Func___1___2___System_Func___0_System_Collections_Generic_IEnumerable___1____3__System_Func___0___1__" data-uid="CapyKit.Extensions.LINQExtensions.LeftOuterJoin``4(System.Linq.IQueryable{``0},System.Linq.IQueryable{``1},System.Linq.Expressions.Expression{System.Func{``0,``2}},System.Linq.Expressions.Expression{System.Func{``1,``2}},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3},System.Func{``0,``1})">
LeftOuterJoin&lt;T, U, TKey, R&gt;(IQueryable&lt;T&gt;, IQueryable&lt;U&gt;, Expression&lt;Func&lt;T, TKey&gt;&gt;, Expression&lt;Func&lt;U, TKey&gt;&gt;, Func&lt;T, IEnumerable&lt;U&gt;, R&gt;, Func&lt;T, U&gt;)
</h3>
<div class="markdown level1 summary"><p>An IQueryable&lt;T&gt; extension method that left outer join.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static IQueryable&lt;R&gt; LeftOuterJoin&lt;T, U, TKey, R&gt;(this IQueryable&lt;T&gt; source, IQueryable&lt;U&gt; inner, Expression&lt;Func&lt;T, TKey&gt;&gt; outerSelector, Expression&lt;Func&lt;U, TKey&gt;&gt; innerSelector, Func&lt;T, IEnumerable&lt;U&gt;, R&gt; resultSelector, Func&lt;T, U&gt; defaultGenerator = null)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>source</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;T&gt;</dt>
<dd><p>The source to act on.</p>
</dd>
<dt><code>inner</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;U&gt;</dt>
<dd><p>The inner.</p>
</dd>
<dt><code>outerSelector</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.expressions.expression-1">Expression</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;T, TKey&gt;&gt;</dt>
<dd><p>The outer selector.</p>
</dd>
<dt><code>innerSelector</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.expressions.expression-1">Expression</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;U, TKey&gt;&gt;</dt>
<dd><p>The inner selector.</p>
</dd>
<dt><code>resultSelector</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-3">Func</a>&lt;T, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;U&gt;, R&gt;</dt>
<dd><p>The result selector.</p>
</dd>
<dt><code>defaultGenerator</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;T, U&gt;</dt>
<dd><p>(Optional) The default generator.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;R&gt;</dt>
<dd><p>An IQueryable&lt;R&gt;</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
<dt><code>U</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
<dt><code>TKey</code></dt>
<dd><p>Type of the key.</p>
</dd>
<dt><code>R</code></dt>
<dd><p>Type of the r.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_LINQExtensions_PageCount_" data-uid="CapyKit.Extensions.LINQExtensions.PageCount*"></a>
<h3 id="CapyKit_Extensions_LINQExtensions_PageCount__1_System_Collections_Generic_IEnumerable___0__System_Int32_" data-uid="CapyKit.Extensions.LINQExtensions.PageCount``1(System.Collections.Generic.IEnumerable{``0},System.Int32)">
PageCount&lt;T&gt;(IEnumerable&lt;T&gt;, int)
</h3>
<div class="markdown level1 summary"><p>The number of pages of <code class="paramref">pageSize</code> size in the given collection.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static int PageCount&lt;T&gt;(this IEnumerable&lt;T&gt; source, int pageSize)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>source</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</dt>
<dd><p>The source to act on.</p>
</dd>
<dt><code>pageSize</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>Size of the page.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>An int.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception">ArgumentOutOfRangeException</a></dt>
<dd><p>Thrown when <code class="paramref">pageSize</code> is less than <code>1</code>.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_LINQExtensions_PageCount_" data-uid="CapyKit.Extensions.LINQExtensions.PageCount*"></a>
<h3 id="CapyKit_Extensions_LINQExtensions_PageCount__1_System_Linq_IQueryable___0__System_Int32_" data-uid="CapyKit.Extensions.LINQExtensions.PageCount``1(System.Linq.IQueryable{``0},System.Int32)">
PageCount&lt;T&gt;(IQueryable&lt;T&gt;, int)
</h3>
<div class="markdown level1 summary"><p>The number of pages of <code class="paramref">pageSize</code> size in the given collection.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static int PageCount&lt;T&gt;(this IQueryable&lt;T&gt; source, int pageSize)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>source</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;T&gt;</dt>
<dd><p>The source to act on.</p>
</dd>
<dt><code>pageSize</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>Size of the page.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>An int.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception">ArgumentOutOfRangeException</a></dt>
<dd><p>Thrown when <code class="paramref">pageSize</code> is less than <code>1</code>.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_LINQExtensions_Page_" data-uid="CapyKit.Extensions.LINQExtensions.Page*"></a>
<h3 id="CapyKit_Extensions_LINQExtensions_Page__1_System_Collections_Generic_IEnumerable___0__System_Int32_System_Int32_" data-uid="CapyKit.Extensions.LINQExtensions.Page``1(System.Collections.Generic.IEnumerable{``0},System.Int32,System.Int32)">
Page&lt;T&gt;(IEnumerable&lt;T&gt;, int, int)
</h3>
<div class="markdown level1 summary"><p>Get a page of items from a collection, skipping <code class="paramref">pageNumber</code> pages of
<code class="paramref">pageSize</code> items per page.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static IEnumerable&lt;T&gt; Page&lt;T&gt;(this IEnumerable&lt;T&gt; source, int pageNumber, int pageSize)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>source</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</dt>
<dd><p>The source to act on.</p>
</dd>
<dt><code>pageNumber</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The page number to retrieve.</p>
</dd>
<dt><code>pageSize</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>Number of items per page.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</dt>
<dd><p>An enumerator that allows foreach to be used to process page in this collection.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Extensions_LINQExtensions_Page__1_System_Collections_Generic_IEnumerable___0__System_Int32_System_Int32__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>This method uses natural numbering starting at page 1.</p>
</div>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception">ArgumentOutOfRangeException</a></dt>
<dd><p>Thrown when <code class="paramref">pageNumber</code> is less than <code>1</code> or if
<code class="paramref">pageSize</code> is less than
<code>1</code>.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_LINQExtensions_Page_" data-uid="CapyKit.Extensions.LINQExtensions.Page*"></a>
<h3 id="CapyKit_Extensions_LINQExtensions_Page__1_System_Linq_IQueryable___0__System_Int32_System_Int32_" data-uid="CapyKit.Extensions.LINQExtensions.Page``1(System.Linq.IQueryable{``0},System.Int32,System.Int32)">
Page&lt;T&gt;(IQueryable&lt;T&gt;, int, int)
</h3>
<div class="markdown level1 summary"><p>Get a page of items from a collection, skipping <code class="paramref">pageNumber</code> pages of
<code class="paramref">pageSize</code> items per page.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static IQueryable&lt;T&gt; Page&lt;T&gt;(this IQueryable&lt;T&gt; source, int pageNumber, int pageSize)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>source</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;T&gt;</dt>
<dd><p>The source to act on.</p>
</dd>
<dt><code>pageNumber</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The page number to retrieve.</p>
</dd>
<dt><code>pageSize</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable</a>&lt;T&gt;</dt>
<dd><p>An enumerator that allows foreach to be used to process page in this collection.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Extensions_LINQExtensions_Page__1_System_Linq_IQueryable___0__System_Int32_System_Int32__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>This method uses natural numbering starting at page 1.</p>
</div>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.argumentoutofrangeexception">ArgumentOutOfRangeException</a></dt>
<dd><p>Thrown when <code class="paramref">pageNumber</code> is less than <code>1</code> or if
<code class="paramref">pageSize</code> is less than
<code>1</code>.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,260 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class ObjectExtensions | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class ObjectExtensions | CapyKit Documentation ">
<meta name="description" content="An class containing extenstions that apply to any object type.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Extensions.ObjectExtensions">
<h1 id="CapyKit_Extensions_ObjectExtensions" data-uid="CapyKit.Extensions.ObjectExtensions" class="text-break">
Class ObjectExtensions
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Extensions.html">Extensions</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>An class containing extenstions that apply to any object type.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class ObjectExtensions</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">ObjectExtensions</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Extensions_ObjectExtensions_UpdateProperties_" data-uid="CapyKit.Extensions.ObjectExtensions.UpdateProperties*"></a>
<h3 id="CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_" data-uid="CapyKit.Extensions.ObjectExtensions.UpdateProperties(System.Object,System.Object)">
UpdateProperties(object, object)
</h3>
<div class="markdown level1 summary"><p>An object extension method that updates the properties of a given <code class="paramref">target</code>
object with the values from a given <code class="paramref">source</code> object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void UpdateProperties(this object target, object source)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>target</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd><p>The target object to act on.</p>
</dd>
<dt><code>source</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd><p>Source for the new property values.</p>
</dd>
</dl>
<a id="CapyKit_Extensions_ObjectExtensions_UpdateProperties_" data-uid="CapyKit.Extensions.ObjectExtensions.UpdateProperties*"></a>
<h3 id="CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_" data-uid="CapyKit.Extensions.ObjectExtensions.UpdateProperties``1(``0,``0)">
UpdateProperties&lt;T&gt;(T, T)
</h3>
<div class="markdown level1 summary"><p>An object extension method that updates the properties of a given <code class="paramref">target</code>
object with the values from a given <code class="paramref">source</code> object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void UpdateProperties&lt;T&gt;(this T target, T source)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>target</code> <span class="xref">T</span></dt>
<dd><p>The target object to act on.</p>
</dd>
<dt><code>source</code> <span class="xref">T</span></dt>
<dd><p>Source for the new property values.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,276 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class StringExtensions | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class StringExtensions | CapyKit Documentation ">
<meta name="description" content="Provides static extentions methods for providing additional functionality for types.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Extensions.StringExtensions">
<h1 id="CapyKit_Extensions_StringExtensions" data-uid="CapyKit.Extensions.StringExtensions" class="text-break">
Class StringExtensions
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Extensions.html">Extensions</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Provides static extentions methods for providing additional functionality for <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a> types.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class StringExtensions</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">StringExtensions</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Extensions_StringExtensions_IfNullOrEmpty_" data-uid="CapyKit.Extensions.StringExtensions.IfNullOrEmpty*"></a>
<h3 id="CapyKit_Extensions_StringExtensions_IfNullOrEmpty_System_String_System_String_" data-uid="CapyKit.Extensions.StringExtensions.IfNullOrEmpty(System.String,System.String)">
IfNullOrEmpty(string, string)
</h3>
<div class="markdown level1 summary"><p>Replaces a null or empty string with a specified replacement string.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string IfNullOrEmpty(this string value, string replacement)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>value</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The original string.</p>
</dd>
<dt><code>replacement</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The replacement string.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The original string if not null or empty, otherwise the replacement string.</p>
</dd>
</dl>
<dl class="typelist seealso">
<dt>See Also</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string.isnullorempty">IsNullOrEmpty</a>(<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>)</div>
</dd>
</dl>
<a id="CapyKit_Extensions_StringExtensions_IfNullOrWhiteSpace_" data-uid="CapyKit.Extensions.StringExtensions.IfNullOrWhiteSpace*"></a>
<h3 id="CapyKit_Extensions_StringExtensions_IfNullOrWhiteSpace_System_String_System_String_" data-uid="CapyKit.Extensions.StringExtensions.IfNullOrWhiteSpace(System.String,System.String)">
IfNullOrWhiteSpace(string, string)
</h3>
<div class="markdown level1 summary"><p>Replaces a null or whitespace string with a specified replacement string.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string IfNullOrWhiteSpace(this string value, string replacement)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>value</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The original string.</p>
</dd>
<dt><code>replacement</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The replacement string.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The original string if not null or whitespace, otherwise the replacement string.</p>
</dd>
</dl>
<dl class="typelist seealso">
<dt>See Also</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string.isnullorwhitespace">IsNullOrWhiteSpace</a>(<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>)</div>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,142 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Namespace CapyKit.Extensions | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Namespace CapyKit.Extensions | CapyKit Documentation ">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Extensions">
<h1 id="CapyKit_Extensions" data-uid="CapyKit.Extensions" class="text-break">Namespace CapyKit.Extensions</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>
<div class="markdown level0 remarks"></div>
<h3 id="classes">
Classes
</h3>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html">EnumerationExtensions</a></dt>
<dd><p>Provides static extentions methods for providing additional functionality for <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.enum">Enum</a> types.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Extensions.LINQExtensions.html">LINQExtensions</a></dt>
<dd><p>Provides static extension methods for performing common LINQ operations on <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable&lt;T&gt;</a> and <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.linq.iqueryable-1">IQueryable&lt;T&gt;</a> collections.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Extensions.ObjectExtensions.html">ObjectExtensions</a></dt>
<dd><p>An class containing extenstions that apply to any object type.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Extensions.StringExtensions.html">StringExtensions</a></dt>
<dd><p>Provides static extentions methods for providing additional functionality for <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a> types.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,600 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class CalculationHelper | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class CalculationHelper | CapyKit Documentation ">
<meta name="description" content="Static class providing helper methods for various calculations.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers.CalculationHelper">
<h1 id="CapyKit_Helpers_CalculationHelper" data-uid="CapyKit.Helpers.CalculationHelper" class="text-break">
Class CalculationHelper
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Helpers.html">Helpers</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Static class providing helper methods for various calculations.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class CalculationHelper</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">CalculationHelper</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 class="section" id="fields">Fields
</h2>
<h3 id="CapyKit_Helpers_CalculationHelper_EARTH_RADIUS_KILOMETERS" data-uid="CapyKit.Helpers.CalculationHelper.EARTH_RADIUS_KILOMETERS">
EARTH_RADIUS_KILOMETERS
</h3>
<div class="markdown level1 summary"><p>The earth's radius in kilometers.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const int EARTH_RADIUS_KILOMETERS = 6371</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h3 id="CapyKit_Helpers_CalculationHelper_MILES_PER_KILOMETER" data-uid="CapyKit.Helpers.CalculationHelper.MILES_PER_KILOMETER">
MILES_PER_KILOMETER
</h3>
<div class="markdown level1 summary"><p>Ratio of miles per kilometer .</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const double MILES_PER_KILOMETER = 0.621371</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Helpers_CalculationHelper_CalculateHash_" data-uid="CapyKit.Helpers.CalculationHelper.CalculateHash*"></a>
<h3 id="CapyKit_Helpers_CalculationHelper_CalculateHash_System_String_" data-uid="CapyKit.Helpers.CalculationHelper.CalculateHash(System.String)">
CalculateHash(string)
</h3>
<div class="markdown level1 summary"><p>Calculates the hash of a given string using an <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.security.cryptography.md5">MD5</a> value as the first 32 bits.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static int CalculateHash(string str)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>str</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The string to be hashed.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The calculated hash.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Helpers_CalculationHelper_CalculateHash_System_String__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>This method is used for a quick and consistent hash function. It should not be considered
cryptographically sound or used in security contexts.</p>
</div>
<a id="CapyKit_Helpers_CalculationHelper_CalculateHexHash_" data-uid="CapyKit.Helpers.CalculationHelper.CalculateHexHash*"></a>
<h3 id="CapyKit_Helpers_CalculationHelper_CalculateHexHash_System_String_" data-uid="CapyKit.Helpers.CalculationHelper.CalculateHexHash(System.String)">
CalculateHexHash(string)
</h3>
<div class="markdown level1 summary"><p>Calculates the hexadecimal hash.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string CalculateHexHash(string str)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>str</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The string to be hashed.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The calculated 16 character hexadecimal hash.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_CalculationHelper_DegreesToRadians_" data-uid="CapyKit.Helpers.CalculationHelper.DegreesToRadians*"></a>
<h3 id="CapyKit_Helpers_CalculationHelper_DegreesToRadians_System_Double_" data-uid="CapyKit.Helpers.CalculationHelper.DegreesToRadians(System.Double)">
DegreesToRadians(double)
</h3>
<div class="markdown level1 summary"><p>Convers degrees to radians.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static double DegreesToRadians(double degrees)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>degrees</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The degree value.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The value as radians.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_CalculationHelper_GetDistance_" data-uid="CapyKit.Helpers.CalculationHelper.GetDistance*"></a>
<h3 id="CapyKit_Helpers_CalculationHelper_GetDistance_System_Decimal_System_Decimal_System_Decimal_System_Decimal_CapyKit_Enumerations_MeasurementSystem_" data-uid="CapyKit.Helpers.CalculationHelper.GetDistance(System.Decimal,System.Decimal,System.Decimal,System.Decimal,CapyKit.Enumerations.MeasurementSystem)">
GetDistance(decimal, decimal, decimal, decimal, MeasurementSystem)
</h3>
<div class="markdown level1 summary"><p>Gets the distance between two points on earth using the <code>haversine</code> formula.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static decimal GetDistance(decimal latitudeOrigin, decimal longitudeOrigin, decimal latitudeDestination, decimal longitudeDestination, MeasurementSystem measurementSystem = MeasurementSystem.Imperial)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>latitudeOrigin</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a></dt>
<dd><p>The latitude origin.</p>
</dd>
<dt><code>longitudeOrigin</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a></dt>
<dd><p>The longitude origin.</p>
</dd>
<dt><code>latitudeDestination</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a></dt>
<dd><p>The latitude destination.</p>
</dd>
<dt><code>longitudeDestination</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a></dt>
<dd><p>The longitude destination.</p>
</dd>
<dt><code>measurementSystem</code> <a class="xref" href="CapyKit.Enumerations.MeasurementSystem.html">MeasurementSystem</a></dt>
<dd><p>(Optional) The measurement system.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.decimal">decimal</a></dt>
<dd><p>The distance.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Helpers_CalculationHelper_GetDistance_System_Decimal_System_Decimal_System_Decimal_System_Decimal_CapyKit_Enumerations_MeasurementSystem__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>Uses the <a href="https://www.movable-type.co.uk/scripts/latlong.html">haversine</a> formula
to calculate the &quot;as-the-crow-flies&quot; distance between two points on earth.</p>
</div>
<dl class="typelist seealso">
<dt>See Also</dt>
<dd>
<div><a class="xref" href="CapyKit.Helpers.CalculationHelper.html#CapyKit_Helpers_CalculationHelper_GetDistance_System_Double_System_Double_System_Double_System_Double_CapyKit_Enumerations_MeasurementSystem_">GetDistance(double, double, double, double, MeasurementSystem)</a></div>
</dd>
</dl>
<a id="CapyKit_Helpers_CalculationHelper_GetDistance_" data-uid="CapyKit.Helpers.CalculationHelper.GetDistance*"></a>
<h3 id="CapyKit_Helpers_CalculationHelper_GetDistance_System_Double_System_Double_System_Double_System_Double_CapyKit_Enumerations_MeasurementSystem_" data-uid="CapyKit.Helpers.CalculationHelper.GetDistance(System.Double,System.Double,System.Double,System.Double,CapyKit.Enumerations.MeasurementSystem)">
GetDistance(double, double, double, double, MeasurementSystem)
</h3>
<div class="markdown level1 summary"><p>Gets the distance between two points on earth using the <code>haversine</code> formula.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static double GetDistance(double latitudeOrigin, double longitudeOrigin, double latitudeDestination, double longitudeDestination, MeasurementSystem measurementSystem = MeasurementSystem.Imperial)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>latitudeOrigin</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The latitude of the origin.</p>
</dd>
<dt><code>longitudeOrigin</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The longitude of the origin.</p>
</dd>
<dt><code>latitudeDestination</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The latitude destination.</p>
</dd>
<dt><code>longitudeDestination</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The longitude destination.</p>
</dd>
<dt><code>measurementSystem</code> <a class="xref" href="CapyKit.Enumerations.MeasurementSystem.html">MeasurementSystem</a></dt>
<dd><p>(Optional) The measurement system.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The distance.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Helpers_CalculationHelper_GetDistance_System_Double_System_Double_System_Double_System_Double_CapyKit_Enumerations_MeasurementSystem__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>Uses the <a href="https://www.movable-type.co.uk/scripts/latlong.html">haversine</a> formula
to calculate the &quot;as-the-crow-flies&quot; distance between two points on earth.</p>
</div>
<a id="CapyKit_Helpers_CalculationHelper_KilometersToMiles_" data-uid="CapyKit.Helpers.CalculationHelper.KilometersToMiles*"></a>
<h3 id="CapyKit_Helpers_CalculationHelper_KilometersToMiles_System_Double_" data-uid="CapyKit.Helpers.CalculationHelper.KilometersToMiles(System.Double)">
KilometersToMiles(double)
</h3>
<div class="markdown level1 summary"><p>Converts kilometers to miles.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static double KilometersToMiles(double kilometers)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>kilometers</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The value in kilometers.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The value in miles.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_CalculationHelper_MilesToKilometers_" data-uid="CapyKit.Helpers.CalculationHelper.MilesToKilometers*"></a>
<h3 id="CapyKit_Helpers_CalculationHelper_MilesToKilometers_System_Double_" data-uid="CapyKit.Helpers.CalculationHelper.MilesToKilometers(System.Double)">
MilesToKilometers(double)
</h3>
<div class="markdown level1 summary"><p>Converts miles to kilometers.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static double MilesToKilometers(double miles)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>miles</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The value in miles.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The value in kilometers.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_CalculationHelper_RadiansToDegrees_" data-uid="CapyKit.Helpers.CalculationHelper.RadiansToDegrees*"></a>
<h3 id="CapyKit_Helpers_CalculationHelper_RadiansToDegrees_System_Double_" data-uid="CapyKit.Helpers.CalculationHelper.RadiansToDegrees(System.Double)">
RadiansToDegrees(double)
</h3>
<div class="markdown level1 summary"><p>Converts radians to degrees.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static double RadiansToDegrees(double radians)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>radians</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The radian value.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.double">double</a></dt>
<dd><p>The value as degrees.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,387 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class CompressionHelper | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class CompressionHelper | CapyKit Documentation ">
<meta name="description" content="A class that contains methods for managing data compression.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers.CompressionHelper">
<h1 id="CapyKit_Helpers_CompressionHelper" data-uid="CapyKit.Helpers.CompressionHelper" class="text-break">
Class CompressionHelper
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Helpers.html">Helpers</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>A class that contains methods for managing data compression.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class CompressionHelper</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">CompressionHelper</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Helpers_CompressionHelper_Compress_" data-uid="CapyKit.Helpers.CompressionHelper.Compress*"></a>
<h3 id="CapyKit_Helpers_CompressionHelper_Compress_System_Object_" data-uid="CapyKit.Helpers.CompressionHelper.Compress(System.Object)">
Compress(object)
</h3>
<div class="markdown level1 summary"><p>Compresses a given object using the <code>gzip</code> algorithm.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static byte[] Compress(object obj)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>obj</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd><p>The object.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>A byte array representing the compressed object in <code>gzip</code> format.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_CompressionHelper_CompressToString_" data-uid="CapyKit.Helpers.CompressionHelper.CompressToString*"></a>
<h3 id="CapyKit_Helpers_CompressionHelper_CompressToString_System_Object_" data-uid="CapyKit.Helpers.CompressionHelper.CompressToString(System.Object)">
CompressToString(object)
</h3>
<div class="markdown level1 summary"><p>Compresses a given object to a string using <code>base64</code> encoding of <code>gzip</code> format.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string CompressToString(object obj)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>obj</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd><p>The object.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A string in <code>base64</code> encoding.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_CompressionHelper_DecompressToString_" data-uid="CapyKit.Helpers.CompressionHelper.DecompressToString*"></a>
<h3 id="CapyKit_Helpers_CompressionHelper_DecompressToString_System_String_" data-uid="CapyKit.Helpers.CompressionHelper.DecompressToString(System.String)">
DecompressToString(string)
</h3>
<div class="markdown level1 summary"><p>Decompresses the given <code>base64</code> string in <code>gzip</code> format.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string DecompressToString(string compressed)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>compressed</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The compressed string.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A decomressed string.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_CompressionHelper_Decompress_" data-uid="CapyKit.Helpers.CompressionHelper.Decompress*"></a>
<h3 id="CapyKit_Helpers_CompressionHelper_Decompress__1_System_Byte___" data-uid="CapyKit.Helpers.CompressionHelper.Decompress``1(System.Byte[])">
Decompress&lt;T&gt;(byte[])
</h3>
<div class="markdown level1 summary"><p>Decompresses a given compressed <code>gzip</code> byte stream.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T Decompress&lt;T&gt;(byte[] byteStream)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>byteStream</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>The compressed byte stream.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>A <code class="typeparamref">T</code> typed object.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_CompressionHelper_Decompress_" data-uid="CapyKit.Helpers.CompressionHelper.Decompress*"></a>
<h3 id="CapyKit_Helpers_CompressionHelper_Decompress__1_System_String_" data-uid="CapyKit.Helpers.CompressionHelper.Decompress``1(System.String)">
Decompress&lt;T&gt;(string)
</h3>
<div class="markdown level1 summary"><p>Decompresses a given <code>base64</code> encoded string of <code>gzip</code> format.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T Decompress&lt;T&gt;(string encodedString)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>encodedString</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The <code>base64</code> encoded <code>gzip</code> string.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>A <code class="typeparamref">T</code> typed object.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,220 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class EncryptionHelper | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class EncryptionHelper | CapyKit Documentation ">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers.EncryptionHelper">
<h1 id="CapyKit_Helpers_EncryptionHelper" data-uid="CapyKit.Helpers.EncryptionHelper" class="text-break">
Class EncryptionHelper
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Helpers.html">Helpers</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class EncryptionHelper</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">EncryptionHelper</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="CapyKit_Helpers_EncryptionHelper__ctor_" data-uid="CapyKit.Helpers.EncryptionHelper.#ctor*"></a>
<h3 id="CapyKit_Helpers_EncryptionHelper__ctor_System_String_" data-uid="CapyKit.Helpers.EncryptionHelper.#ctor(System.String)">
EncryptionHelper(string)
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public EncryptionHelper(string encryptionKey)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>encryptionKey</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,278 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Interface IEncryptionAlgorithm | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Interface IEncryptionAlgorithm | CapyKit Documentation ">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers.IEncryptionAlgorithm">
<h1 id="CapyKit_Helpers_IEncryptionAlgorithm" data-uid="CapyKit.Helpers.IEncryptionAlgorithm" class="text-break">
Interface IEncryptionAlgorithm
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Helpers.html">Helpers</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public interface IEncryptionAlgorithm</code></pre>
</div>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="CapyKit_Helpers_IEncryptionAlgorithm_AlgorithmName_" data-uid="CapyKit.Helpers.IEncryptionAlgorithm.AlgorithmName*"></a>
<h3 id="CapyKit_Helpers_IEncryptionAlgorithm_AlgorithmName" data-uid="CapyKit.Helpers.IEncryptionAlgorithm.AlgorithmName">
AlgorithmName
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">string AlgorithmName { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Helpers_IEncryptionAlgorithm_Decrypt_" data-uid="CapyKit.Helpers.IEncryptionAlgorithm.Decrypt*"></a>
<h3 id="CapyKit_Helpers_IEncryptionAlgorithm_Decrypt__1_CapyKit_EncryptedValue___0__System_Object___" data-uid="CapyKit.Helpers.IEncryptionAlgorithm.Decrypt``1(CapyKit.EncryptedValue{``0},System.Object[])">
Decrypt&lt;T&gt;(EncryptedValue&lt;T&gt;, params object[])
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">T Decrypt&lt;T&gt;(EncryptedValue&lt;T&gt; encryptedValue, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>encryptedValue</code> <a class="xref" href="CapyKit.EncryptedValue-1.html">EncryptedValue</a>&lt;T&gt;</dt>
<dd></dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd></dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd></dd>
</dl>
<a id="CapyKit_Helpers_IEncryptionAlgorithm_Encrypt_" data-uid="CapyKit.Helpers.IEncryptionAlgorithm.Encrypt*"></a>
<h3 id="CapyKit_Helpers_IEncryptionAlgorithm_Encrypt__1_System_Object_System_Object___" data-uid="CapyKit.Helpers.IEncryptionAlgorithm.Encrypt``1(System.Object,System.Object[])">
Encrypt&lt;T&gt;(object, params object[])
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">EncryptedValue&lt;T&gt; Encrypt&lt;T&gt;(object obj, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>obj</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd></dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="CapyKit.EncryptedValue-1.html">EncryptedValue</a>&lt;T&gt;</dt>
<dd></dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,480 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class KeyHelper | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class KeyHelper | CapyKit Documentation ">
<meta name="description" content="A class that contains methods for managing key creation and validation against a master key.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers.KeyHelper">
<h1 id="CapyKit_Helpers_KeyHelper" data-uid="CapyKit.Helpers.KeyHelper" class="text-break">
Class KeyHelper
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Helpers.html">Helpers</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>A class that contains methods for managing key creation and validation against a master key.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class KeyHelper</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">KeyHelper</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Helpers_KeyHelper_GenerateKey_" data-uid="CapyKit.Helpers.KeyHelper.GenerateKey*"></a>
<h3 id="CapyKit_Helpers_KeyHelper_GenerateKey" data-uid="CapyKit.Helpers.KeyHelper.GenerateKey">
GenerateKey()
</h3>
<div class="markdown level1 summary"><p>Generates a random key.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string GenerateKey()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The key.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_KeyHelper_GetMasterKey_" data-uid="CapyKit.Helpers.KeyHelper.GetMasterKey*"></a>
<h3 id="CapyKit_Helpers_KeyHelper_GetMasterKey" data-uid="CapyKit.Helpers.KeyHelper.GetMasterKey">
GetMasterKey()
</h3>
<div class="markdown level1 summary"><p>Gets the master key.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public byte[] GetMasterKey()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>An array of byte.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.invalidoperationexception">InvalidOperationException</a></dt>
<dd><p>Thrown when the requested operation is invalid.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_KeyHelper_GetNumParts_" data-uid="CapyKit.Helpers.KeyHelper.GetNumParts*"></a>
<h3 id="CapyKit_Helpers_KeyHelper_GetNumParts" data-uid="CapyKit.Helpers.KeyHelper.GetNumParts">
GetNumParts()
</h3>
<div class="markdown level1 summary"><p>Gets the number parts.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int GetNumParts()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The number parts.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.argumentexception">ArgumentException</a></dt>
<dd><p>Thrown when one or more arguments have unsupported or illegal values.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_KeyHelper_GetSaltSize_" data-uid="CapyKit.Helpers.KeyHelper.GetSaltSize*"></a>
<h3 id="CapyKit_Helpers_KeyHelper_GetSaltSize" data-uid="CapyKit.Helpers.KeyHelper.GetSaltSize">
GetSaltSize()
</h3>
<div class="markdown level1 summary"><p>Gets the salt size.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int GetSaltSize()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The salt size.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_KeyHelper_SetMasterKeyAccessor_" data-uid="CapyKit.Helpers.KeyHelper.SetMasterKeyAccessor*"></a>
<h3 id="CapyKit_Helpers_KeyHelper_SetMasterKeyAccessor_System_Func_System_Byte____" data-uid="CapyKit.Helpers.KeyHelper.SetMasterKeyAccessor(System.Func{System.Byte[]})">
SetMasterKeyAccessor(Func&lt;byte[]&gt;)
</h3>
<div class="markdown level1 summary"><p>Sets the master key.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void SetMasterKeyAccessor(Func&lt;byte[]&gt; accessor)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>accessor</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-1">Func</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]&gt;</dt>
<dd><p>The accessor function.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_KeyHelper_SetNumPartsAccessor_" data-uid="CapyKit.Helpers.KeyHelper.SetNumPartsAccessor*"></a>
<h3 id="CapyKit_Helpers_KeyHelper_SetNumPartsAccessor_System_Func_System_Int32__" data-uid="CapyKit.Helpers.KeyHelper.SetNumPartsAccessor(System.Func{System.Int32})">
SetNumPartsAccessor(Func&lt;int&gt;)
</h3>
<div class="markdown level1 summary"><p>Set and get the number of parts for the formatted key. Default is 2.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void SetNumPartsAccessor(Func&lt;int&gt; accessor)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>accessor</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-1">Func</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a>&gt;</dt>
<dd><p>The accessor function.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_KeyHelper_SetSaltSizeAccessor_" data-uid="CapyKit.Helpers.KeyHelper.SetSaltSizeAccessor*"></a>
<h3 id="CapyKit_Helpers_KeyHelper_SetSaltSizeAccessor_System_Func_System_Int32__" data-uid="CapyKit.Helpers.KeyHelper.SetSaltSizeAccessor(System.Func{System.Int32})">
SetSaltSizeAccessor(Func&lt;int&gt;)
</h3>
<div class="markdown level1 summary"><p>Sets the salt size (in bytes). Default is 4.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void SetSaltSizeAccessor(Func&lt;int&gt; accessor)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>accessor</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-1">Func</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a>&gt;</dt>
<dd><p>The accessor function.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_KeyHelper_ValidateKey_" data-uid="CapyKit.Helpers.KeyHelper.ValidateKey*"></a>
<h3 id="CapyKit_Helpers_KeyHelper_ValidateKey_System_String_" data-uid="CapyKit.Helpers.KeyHelper.ValidateKey(System.String)">
ValidateKey(string)
</h3>
<div class="markdown level1 summary"><p>Validates the provided key.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool ValidateKey(string providedKey)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>providedKey</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The provided key.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>True if it succeeds, false if it fails.</p>
</dd>
</dl>
<dl class="typelist seealso">
<dt>See Also</dt>
<dd>
<div><a class="xref" href="CapyKit.Helpers.KeyHelper.html#CapyKit_Helpers_KeyHelper_GetMasterKey">GetMasterKey()</a></div>
<div><a class="xref" href="CapyKit.Helpers.KeyHelper.html#CapyKit_Helpers_KeyHelper_SetMasterKeyAccessor_System_Func_System_Byte____">SetMasterKeyAccessor(Func&lt;byte[]&gt;)</a></div>
<div><span class="xref">masterKeyAccessor</span></div>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,233 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class LanguageHelper | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class LanguageHelper | CapyKit Documentation ">
<meta name="description" content="Helper class for handling text transformations.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers.LanguageHelper">
<h1 id="CapyKit_Helpers_LanguageHelper" data-uid="CapyKit.Helpers.LanguageHelper" class="text-break">
Class LanguageHelper
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Helpers.html">Helpers</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Helper class for handling text transformations.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class LanguageHelper</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">LanguageHelper</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Helpers_LanguageHelper_CamelCaseToHumanReadable_" data-uid="CapyKit.Helpers.LanguageHelper.CamelCaseToHumanReadable*"></a>
<h3 id="CapyKit_Helpers_LanguageHelper_CamelCaseToHumanReadable_System_String_" data-uid="CapyKit.Helpers.LanguageHelper.CamelCaseToHumanReadable(System.String)">
CamelCaseToHumanReadable(string)
</h3>
<div class="markdown level1 summary"><p>Converts camel case text to human readable text.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string CamelCaseToHumanReadable(string value)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>value</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The value.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A string in human readable format.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Helpers_LanguageHelper_CamelCaseToHumanReadable_System_String__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>Camel case is a naming convention for identifiers in which the first letter of each word is
capitalized.</p>
</div>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,725 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class SecurityHelper | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SecurityHelper | CapyKit Documentation ">
<meta name="description" content="A class that contains methods for managing secure data processing and cryptography.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers.SecurityHelper">
<h1 id="CapyKit_Helpers_SecurityHelper" data-uid="CapyKit.Helpers.SecurityHelper" class="text-break">
Class SecurityHelper
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Helpers.html">Helpers</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>A class that contains methods for managing secure data processing and cryptography.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class SecurityHelper</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">SecurityHelper</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Helpers_SecurityHelper_CompareHashedPassword_" data-uid="CapyKit.Helpers.SecurityHelper.CompareHashedPassword*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_CompareHashedPassword_CapyKit_Password_System_String_System_Byte___CapyKit_IPasswordAlgorithm_System_Object___" data-uid="CapyKit.Helpers.SecurityHelper.CompareHashedPassword(CapyKit.Password,System.String,System.Byte[],CapyKit.IPasswordAlgorithm,System.Object[])">
CompareHashedPassword(Password, string, byte[], IPasswordAlgorithm, params object[])
</h3>
<div class="markdown level1 summary"><p>Compares an unencrypted <code class="paramref">password</code> with a stored, encrypted <code class="paramref">existingPassword</code>.
This method uses the specified <code class="paramref">algorithm</code> to retrieve the hashed version
of the <code class="paramref">password</code> and then compares it with the <code class="paramref">existingPassword</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool CompareHashedPassword(Password existingPassword, string password, byte[] salt, IPasswordAlgorithm algorithm, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>existingPassword</code> <a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd><p>The existing, encrypted password.</p>
</dd>
<dt><code>password</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The unencrypted password to be compared.</p>
</dd>
<dt><code>salt</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>The salt value used in password hashing.</p>
</dd>
<dt><code>algorithm</code> <a class="xref" href="CapyKit.IPasswordAlgorithm.html">IPasswordAlgorithm</a></dt>
<dd><p>The password hashing algorithm.</p>
</dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>Additional arguments required for constructing the password algorithm instance.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p><a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">true</a> if hash comparison succeeds, <a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">false</a> if it fails.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SecurityHelper_CompareHashedPassword_" data-uid="CapyKit.Helpers.SecurityHelper.CompareHashedPassword*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_CompareHashedPassword__1_CapyKit_Password_System_String_System_Byte___System_Object___" data-uid="CapyKit.Helpers.SecurityHelper.CompareHashedPassword``1(CapyKit.Password,System.String,System.Byte[],System.Object[])">
CompareHashedPassword&lt;T&gt;(Password, string, byte[], params object[])
</h3>
<div class="markdown level1 summary"><p>Compares an unencrypted <code class="paramref">password</code> with a stored, encrypted <code class="paramref">existingPassword</code>.
This method uses the specified password algorithm type <code class="typeparamref">T</code> to retrieve the hashed version
of the <code class="paramref">password</code> and then compares it with the <code class="paramref">existingPassword</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool CompareHashedPassword&lt;T&gt;(Password existingPassword, string password, byte[] salt, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>existingPassword</code> <a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd><p>The existing, encrypted password.</p>
</dd>
<dt><code>password</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The unencrypted password to be compared.</p>
</dd>
<dt><code>salt</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>The salt value used in password hashing.</p>
</dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>Additional arguments required for constructing the password algorithm instance.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p><a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">true</a> if hash comparison succeeds, <a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">false</a> if it fails.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of the password hashing algorithm.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SecurityHelper_CompareSessionID_" data-uid="CapyKit.Helpers.SecurityHelper.CompareSessionID*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_CompareSessionID_System_String_System_String_" data-uid="CapyKit.Helpers.SecurityHelper.CompareSessionID(System.String,System.String)">
CompareSessionID(string, string)
</h3>
<div class="markdown level1 summary"><p>Compares two session identifiers.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool CompareSessionID(string first, string second)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>first</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The first session identifier.</p>
</dd>
<dt><code>second</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The second session identifier.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p><a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">true</a> if comparison succeeds, <a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">false</a> if not.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SecurityHelper_GetPassword_" data-uid="CapyKit.Helpers.SecurityHelper.GetPassword*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_GetPassword__1_System_String_System_Byte___System_Object___" data-uid="CapyKit.Helpers.SecurityHelper.GetPassword``1(System.String,System.Byte[],System.Object[])">
GetPassword&lt;T&gt;(string, byte[], params object[])
</h3>
<div class="markdown level1 summary"><p>Retrieves a <a class="xref" href="CapyKit.Password.html">Password</a> object using the specified password, salt, and optional
constructor arguments.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Password GetPassword&lt;T&gt;(string password, byte[] salt, params object[] args) where T : IPasswordAlgorithm</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>password</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The plaintext password to be hashed.</p>
</dd>
<dt><code>salt</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>A random value used as an additional input to the one-way function that hashes data, a
password or passphrase. This is used to make each output different for the same input
thus adding security.</p>
</dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>Optional constructor arguments for the <a class="xref" href="CapyKit.IPasswordAlgorithm.html">IPasswordAlgorithm</a> implementation
instance.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd><p>A new <a class="xref" href="CapyKit.Password.html">Password</a> object with the given password and salt, as well as an instance
of <code class="typeparamref">T</code> created using the provided constructor arguments.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of <a class="xref" href="CapyKit.IPasswordAlgorithm.html">IPasswordAlgorithm</a> implementation to use.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Helpers_SecurityHelper_GetPassword__1_System_String_System_Byte___System_Object____remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>This method uses reflection to find a constructor for the specified password algorithm type (<code class="typeparamref">T</code>).
It emits an error event if a suitable constructor is not found or if there is an error invoking the constructor.</p>
</div>
<a id="CapyKit_Helpers_SecurityHelper_GetPassword_" data-uid="CapyKit.Helpers.SecurityHelper.GetPassword*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_GetPassword__1_System_String_System_Object___" data-uid="CapyKit.Helpers.SecurityHelper.GetPassword``1(System.String,System.Object[])">
GetPassword&lt;T&gt;(string, params object[])
</h3>
<div class="markdown level1 summary"><p>Retrieves a <a class="xref" href="CapyKit.Password.html">Password</a> object using the specified password and generates a random salt value.
Then it uses that salt to call the overloaded <a class="xref" href="CapyKit.Helpers.SecurityHelper.html#CapyKit_Helpers_SecurityHelper_GetPassword__1_System_String_System_Byte___System_Object___">GetPassword&lt;T&gt;(string, byte[], params object[])</a> method with the given password and
the generated salt as arguments.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Password GetPassword&lt;T&gt;(string password, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>password</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The plaintext password to be hashed.</p>
</dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>Optional constructor arguments for the <a class="xref" href="CapyKit.IPasswordAlgorithm.html">IPasswordAlgorithm</a> implementation
instance.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd><p>A new <a class="xref" href="CapyKit.Password.html">Password</a> object with the given password and a randomly generated salt, as well as an
instance of <code class="typeparamref">T</code> created using any optional constructor arguments provided.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of <a class="xref" href="CapyKit.IPasswordAlgorithm.html">IPasswordAlgorithm</a> implementation to use.</p>
</dd>
</dl>
<dl class="typelist seealso">
<dt>See Also</dt>
<dd>
<div><span class="xref">SALT_SIZE</span></div>
</dd>
</dl>
<a id="CapyKit_Helpers_SecurityHelper_GetRandomPassword_" data-uid="CapyKit.Helpers.SecurityHelper.GetRandomPassword*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_GetRandomPassword_System_Int32_CapyKit_Helpers_ValidCharacterCollection___" data-uid="CapyKit.Helpers.SecurityHelper.GetRandomPassword(System.Int32,CapyKit.Helpers.ValidCharacterCollection[])">
GetRandomPassword(int, params ValidCharacterCollection[])
</h3>
<div class="markdown level1 summary"><p>Gets a cryptographically strong random password.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string GetRandomPassword(int length, params ValidCharacterCollection[] validCharacters)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>length</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The length of the password to generate.</p>
</dd>
<dt><code>validCharacters</code> <a class="xref" href="CapyKit.Helpers.ValidCharacterCollection.html">ValidCharacterCollection</a>[]</dt>
<dd><p>An array of <a class="xref" href="CapyKit.Helpers.ValidCharacterCollection.html">ValidCharacterCollection</a> enumeration values representing the desired
character sets.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The password.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SecurityHelper_GetRandomString_" data-uid="CapyKit.Helpers.SecurityHelper.GetRandomString*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_GetRandomString_System_Int32_" data-uid="CapyKit.Helpers.SecurityHelper.GetRandomString(System.Int32)">
GetRandomString(int)
</h3>
<div class="markdown level1 summary"><p>A convenience method to generate a random string of the specified length using all character sets.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string GetRandomString(int length)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>length</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The desired length of the generated random string.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<dl class="typelist seealso">
<dt>See Also</dt>
<dd>
<div><a class="xref" href="CapyKit.Helpers.ValidCharacterCollection.html">ValidCharacterCollection</a></div>
<div><a class="xref" href="CapyKit.Helpers.SecurityHelper.html#CapyKit_Helpers_SecurityHelper_GetRandomString_System_Int32_CapyKit_Helpers_ValidCharacterCollection___">GetRandomString(int, params ValidCharacterCollection[])</a></div>
</dd>
</dl>
<a id="CapyKit_Helpers_SecurityHelper_GetRandomString_" data-uid="CapyKit.Helpers.SecurityHelper.GetRandomString*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_GetRandomString_System_Int32_CapyKit_Helpers_ValidCharacterCollection___" data-uid="CapyKit.Helpers.SecurityHelper.GetRandomString(System.Int32,CapyKit.Helpers.ValidCharacterCollection[])">
GetRandomString(int, params ValidCharacterCollection[])
</h3>
<div class="markdown level1 summary"><p>Gets a cryptographically strong random string using the character values found in VALID_CHARACTERS.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string GetRandomString(int length, params ValidCharacterCollection[] validChars)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>length</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The length of the string to create.</p>
</dd>
<dt><code>validChars</code> <a class="xref" href="CapyKit.Helpers.ValidCharacterCollection.html">ValidCharacterCollection</a>[]</dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The random string.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SecurityHelper_GetSalt_" data-uid="CapyKit.Helpers.SecurityHelper.GetSalt*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_GetSalt_System_Int32_" data-uid="CapyKit.Helpers.SecurityHelper.GetSalt(System.Int32)">
GetSalt(int)
</h3>
<div class="markdown level1 summary"><p>Generates a random byte array that can act as a salt.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static byte[] GetSalt(int length = 32)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>length</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>(Optional) The desired length of the generated byte array.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>An array of byte.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Helpers_SecurityHelper_GetSalt_System_Int32__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>A default length of <span class="xref">CapyKit.Helpers.SecurityHelper.SALT_SIZE</span> is provided as a sane default. Larger values can be used for increased
entropy.</p>
</div>
<a id="CapyKit_Helpers_SecurityHelper_Pbkdf2_" data-uid="CapyKit.Helpers.SecurityHelper.Pbkdf2*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_Pbkdf2_System_String_" data-uid="CapyKit.Helpers.SecurityHelper.Pbkdf2(System.String)">
Pbkdf2(string)
</h3>
<div class="markdown level1 summary"><p>Generates a new <a class="xref" href="CapyKit.Password.html">Password</a> object using the PBKDF2 algorithm with the provided <code class="paramref">password</code>.
This overload of the method generates a random salt value for added security.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Password Pbkdf2(string password)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>password</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The clear text password to be hashed.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd><p>A new <a class="xref" href="CapyKit.Password.html">Password</a> object containing the hashed password and a randomly generated salt.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Helpers_SecurityHelper_Pbkdf2_System_String__remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>This method uses the PBKDF2 (Password-Based Key Derivation Function 2) algorithm to generate
a new password hash. The algorithm iteratively applies a pseudorandom function to the
password and salt, which increases the security of the resulting hash. In this overload,
a random salt value is generated using <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">GetRandomBytes(int)</a> method.</p>
</div>
<a id="CapyKit_Helpers_SecurityHelper_Pbkdf2_" data-uid="CapyKit.Helpers.SecurityHelper.Pbkdf2*"></a>
<h3 id="CapyKit_Helpers_SecurityHelper_Pbkdf2_System_String_System_Byte___" data-uid="CapyKit.Helpers.SecurityHelper.Pbkdf2(System.String,System.Byte[])">
Pbkdf2(string, byte[])
</h3>
<div class="markdown level1 summary"><p>Generates a new <a class="xref" href="CapyKit.Password.html">Password</a> object using the PBKDF2 algorithm with the provided <code class="paramref">password</code>
and <code class="paramref">salt</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Password Pbkdf2(string password, byte[] salt)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>password</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The clear text password to be hashed.</p>
</dd>
<dt><code>salt</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>A random value used to add an additional layer of security to the generated hash.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd><p>A new <a class="xref" href="CapyKit.Password.html">Password</a> object containing the hashed password and salt.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Helpers_SecurityHelper_Pbkdf2_System_String_System_Byte____remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>This method uses the PBKDF2 (Password-Based Key Derivation Function 2) algorithm to generate
a new password hash. The algorithm iteratively applies a pseudorandom function to the
password and salt, which increases the security of the resulting hash.</p>
</div>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,404 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class SerializationHelper | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SerializationHelper | CapyKit Documentation ">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers.SerializationHelper">
<h1 id="CapyKit_Helpers_SerializationHelper" data-uid="CapyKit.Helpers.SerializationHelper" class="text-break">
Class SerializationHelper
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Helpers.html">Helpers</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"></div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class SerializationHelper</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">SerializationHelper</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Helpers_SerializationHelper_Deserialize_" data-uid="CapyKit.Helpers.SerializationHelper.Deserialize*"></a>
<h3 id="CapyKit_Helpers_SerializationHelper_Deserialize__1_System_Byte___" data-uid="CapyKit.Helpers.SerializationHelper.Deserialize``1(System.Byte[])">
Deserialize&lt;T&gt;(byte[])
</h3>
<div class="markdown level1 summary"><p>Deserializes an object to a given <code class="typeparamref">T</code> type.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T Deserialize&lt;T&gt;(byte[] bytes)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>bytes</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>The byte array representing a <code class="typeparamref">T</code> object.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>A <code class="typeparamref">T</code> object.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.formatexception">FormatException</a></dt>
<dd><p>Thrown when the format of the byte array is incorrect.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SerializationHelper_Deserialize_" data-uid="CapyKit.Helpers.SerializationHelper.Deserialize*"></a>
<h3 id="CapyKit_Helpers_SerializationHelper_Deserialize__1_System_IO_Stream_" data-uid="CapyKit.Helpers.SerializationHelper.Deserialize``1(System.IO.Stream)">
Deserialize&lt;T&gt;(Stream)
</h3>
<div class="markdown level1 summary"><p>Deserializes an object to a given <code class="typeparamref">T</code> type.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T Deserialize&lt;T&gt;(Stream stream)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>stream</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.io.stream">Stream</a></dt>
<dd><p>The steam.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>A <code class="typeparamref">T</code> object.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.formatexception">FormatException</a></dt>
<dd><p>Thrown when the format of an input is incorrect.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SerializationHelper_Deserialize_" data-uid="CapyKit.Helpers.SerializationHelper.Deserialize*"></a>
<h3 id="CapyKit_Helpers_SerializationHelper_Deserialize__1_System_String_" data-uid="CapyKit.Helpers.SerializationHelper.Deserialize``1(System.String)">
Deserialize&lt;T&gt;(string)
</h3>
<div class="markdown level1 summary"><p>Deserializes a <code>JSON</code> encoded string to the given <code class="typeparamref">T</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T Deserialize&lt;T&gt;(string str)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>str</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The <code>JSON</code> encoded string representing a <code class="typeparamref">T</code> object.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>A <code class="typeparamref">T</code> object.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SerializationHelper_SerializeToBytes_" data-uid="CapyKit.Helpers.SerializationHelper.SerializeToBytes*"></a>
<h3 id="CapyKit_Helpers_SerializationHelper_SerializeToBytes_System_Object_" data-uid="CapyKit.Helpers.SerializationHelper.SerializeToBytes(System.Object)">
SerializeToBytes(object)
</h3>
<div class="markdown level1 summary"><p>Serializes an object to a byte array.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static byte[] SerializeToBytes(object obj)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>obj</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd><p>The object.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>A <code>JSON</code> encoded string.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SerializationHelper_SerializeToString_" data-uid="CapyKit.Helpers.SerializationHelper.SerializeToString*"></a>
<h3 id="CapyKit_Helpers_SerializationHelper_SerializeToString_System_Object_" data-uid="CapyKit.Helpers.SerializationHelper.SerializeToString(System.Object)">
SerializeToString(object)
</h3>
<div class="markdown level1 summary"><p>Serializes an object to a <code>JSON</code> encoded string.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static string SerializeToString(object obj)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>obj</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd><p>The object.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A <code>JSON</code> encoded string.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,339 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class SettingsHelper | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class SettingsHelper | CapyKit Documentation ">
<meta name="description" content="Static class containing helper methods for retrieving and setting application settings.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers.SettingsHelper">
<h1 id="CapyKit_Helpers_SettingsHelper" data-uid="CapyKit.Helpers.SettingsHelper" class="text-break">
Class SettingsHelper
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Helpers.html">Helpers</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Static class containing helper methods for retrieving and setting application settings.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static class SettingsHelper</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">SettingsHelper</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<h2 id="CapyKit_Helpers_SettingsHelper_examples">Examples</h2>
<p>This example demonstrates how to set up the SettingsHelper class with custom accessor and
detector methods that read from an App.config file. The setup is done at the beginning of the
application execution, before any other usage of the helper methods.</p>
<pre><code class="lang-csharp">public int main(string[] args)
{
// Set up SettingsHelper with custom accessor and detector methods
Func&lt;string, object&gt; accessor = (key) =&gt;
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
return config.AppSettings.Settings[key].Value;
};
Func&lt;string, bool&gt; detector = (key) =&gt;
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
return config.AppSettings.Settings.AllKeys.Contains(key);
};
SettingsHelper.SetAccessorMethod(accessor);
SettingsHelper.SetDetectorMethod(detector);
// Use the helper to retrieve and set settings
SettingsHelper.SetApplicationSetting&lt;int&gt;("MySettingKey", 42);
int newSetting = SettingsHelper.GetApplicationSetting&lt;int&gt;("MySettingKey");
Console.WriteLine("New setting: {0}", newSetting);
int mySetting = SettingsHelper.GetApplicationSetting&lt;int&gt;("MySettingKey");
Console.WriteLine("Retrieved setting: {0}", mySetting);
}</code></pre>
<h2 id="CapyKit_Helpers_SettingsHelper_remarks">Remarks</h2>
<div class="markdown level0 remarks"><p>The specific means of accessing and storing the settings are determined by the consumer,
allowing for flexibility in various environments such as <code>App.config</code> or <code>Web.config</code>
.</p>
</div>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Helpers_SettingsHelper_GetApplicationSetting_" data-uid="CapyKit.Helpers.SettingsHelper.GetApplicationSetting*"></a>
<h3 id="CapyKit_Helpers_SettingsHelper_GetApplicationSetting__1_System_String_" data-uid="CapyKit.Helpers.SettingsHelper.GetApplicationSetting``1(System.String)">
GetApplicationSetting&lt;T&gt;(string)
</h3>
<div class="markdown level1 summary"><p>Retrieves a setting with the given <code>key</code>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static T GetApplicationSetting&lt;T&gt;(string settingName)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>settingName</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The name of the setting to retrieve.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>The value of the setting as an uncast <code class="typeparamref">T</code>.</p>
</dd>
</dl>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of the setting to be retrieved.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SettingsHelper_SetAccessorMethod_" data-uid="CapyKit.Helpers.SettingsHelper.SetAccessorMethod*"></a>
<h3 id="CapyKit_Helpers_SettingsHelper_SetAccessorMethod_System_Func_System_String_System_Object__" data-uid="CapyKit.Helpers.SettingsHelper.SetAccessorMethod(System.Func{System.String,System.Object})">
SetAccessorMethod(Func&lt;string, object&gt;)
</h3>
<div class="markdown level1 summary"><p>Sets the function used to retrieve application settings.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void SetAccessorMethod(Func&lt;string, object&gt; accessor)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>accessor</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>&gt;</dt>
<dd><p>The new function used to retrieve application settings.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.argumentnullexception">ArgumentNullException</a></dt>
<dd><p>Thrown when one or more required arguments are null.</p>
</dd>
</dl>
<a id="CapyKit_Helpers_SettingsHelper_SetDetectorMethod_" data-uid="CapyKit.Helpers.SettingsHelper.SetDetectorMethod*"></a>
<h3 id="CapyKit_Helpers_SettingsHelper_SetDetectorMethod_System_Func_System_String_System_Boolean__" data-uid="CapyKit.Helpers.SettingsHelper.SetDetectorMethod(System.Func{System.String,System.Boolean})">
SetDetectorMethod(Func&lt;string, bool&gt;)
</h3>
<div class="markdown level1 summary"><p>Sets the function used to detect if an application setting with a given <code>key</code> exists.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static void SetDetectorMethod(Func&lt;string, bool&gt; detector)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>detector</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a>, <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a>&gt;</dt>
<dd><p>The new function used to detect if an application setting exists.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.argumentnullexception">ArgumentNullException</a></dt>
<dd><p>Thrown when one or more required arguments are null.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,195 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Enum ValidCharacterCollection | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Enum ValidCharacterCollection | CapyKit Documentation ">
<meta name="description" content="An enumeration that defines the types of characters that can be included in a random string.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers.ValidCharacterCollection">
<h1 id="CapyKit_Helpers_ValidCharacterCollection" data-uid="CapyKit.Helpers.ValidCharacterCollection" class="text-break">
Enum ValidCharacterCollection
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a>.<a class="xref" href="CapyKit.Helpers.html">Helpers</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>An enumeration that defines the types of characters that can be included in a random string.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public enum ValidCharacterCollection</code></pre>
</div>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_Parse__1___0_System_String_">EnumerationExtensions.Parse&lt;T&gt;(T, string)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_Parse__1___0_System_String_System_Boolean_">EnumerationExtensions.Parse&lt;T&gt;(T, string, bool)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetDescription_System_Enum_">EnumerationExtensions.GetDescription(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetName_System_Enum_">EnumerationExtensions.GetName(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetPrettyName_System_Enum_">EnumerationExtensions.GetPrettyName(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.EnumerationExtensions.html#CapyKit_Extensions_EnumerationExtensions_GetValue_System_Enum_">EnumerationExtensions.GetValue(Enum)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 id="fields">Fields
</h2>
<dl class="parameters">
<dt id="CapyKit_Helpers_ValidCharacterCollection_Lowercase"><code>[EnumerationDescription(&quot;abcdefghijklmnopqrstuvwxyz&quot;)]
Lowercase = 0</code></dt>
<dd><p>Indicates that lower case characters should be included in the random string.</p>
</dd>
<dt id="CapyKit_Helpers_ValidCharacterCollection_Numbers"><code>[EnumerationDescription(&quot;0123456789&quot;)]
Numbers = 2</code></dt>
<dd><p>Indicates that numeric characters should be included in the random string.</p>
</dd>
<dt id="CapyKit_Helpers_ValidCharacterCollection_Special"><code>[EnumerationDescription(&quot;!@#$%&amp;?+-_&quot;)]
Special = 3</code></dt>
<dd><p>Indicates that special characters should be included in the random string.</p>
</dd>
<dt id="CapyKit_Helpers_ValidCharacterCollection_Uppercase"><code>[EnumerationDescription(&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;)]
Uppercase = 1</code></dt>
<dd><p>Indicates that upper case characters should be included in the random string.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,175 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Namespace CapyKit.Helpers | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Namespace CapyKit.Helpers | CapyKit Documentation ">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Helpers">
<h1 id="CapyKit_Helpers" data-uid="CapyKit.Helpers" class="text-break">Namespace CapyKit.Helpers</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>
<div class="markdown level0 remarks"></div>
<h3 id="classes">
Classes
</h3>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Helpers.CalculationHelper.html">CalculationHelper</a></dt>
<dd><p>Static class providing helper methods for various calculations.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Helpers.CompressionHelper.html">CompressionHelper</a></dt>
<dd><p>A class that contains methods for managing data compression.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Helpers.EncryptionHelper.html">EncryptionHelper</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Helpers.KeyHelper.html">KeyHelper</a></dt>
<dd><p>A class that contains methods for managing key creation and validation against a master key.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Helpers.LanguageHelper.html">LanguageHelper</a></dt>
<dd><p>Helper class for handling text transformations.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Helpers.SecurityHelper.html">SecurityHelper</a></dt>
<dd><p>A class that contains methods for managing secure data processing and cryptography.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Helpers.SerializationHelper.html">SerializationHelper</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Helpers.SettingsHelper.html">SettingsHelper</a></dt>
<dd><p>Static class containing helper methods for retrieving and setting application settings.</p>
</dd>
</dl>
<h3 id="interfaces">
Interfaces
</h3>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Helpers.IEncryptionAlgorithm.html">IEncryptionAlgorithm</a></dt>
<dd></dd>
</dl>
<h3 id="enums">
Enums
</h3>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Helpers.ValidCharacterCollection.html">ValidCharacterCollection</a></dt>
<dd><p>An enumeration that defines the types of characters that can be included in a random string.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,282 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Interface IPasswordAlgorithm | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Interface IPasswordAlgorithm | CapyKit Documentation ">
<meta name="description" content="Defines the contract for password encryption algorithms.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.IPasswordAlgorithm">
<h1 id="CapyKit_IPasswordAlgorithm" data-uid="CapyKit.IPasswordAlgorithm" class="text-break">
Interface IPasswordAlgorithm
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Defines the contract for password encryption algorithms.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public interface IPasswordAlgorithm</code></pre>
</div>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="CapyKit_IPasswordAlgorithm_AlgorithmName_" data-uid="CapyKit.IPasswordAlgorithm.AlgorithmName*"></a>
<h3 id="CapyKit_IPasswordAlgorithm_AlgorithmName" data-uid="CapyKit.IPasswordAlgorithm.AlgorithmName">
AlgorithmName
</h3>
<div class="markdown level1 summary"><p>Gets the name of the algorithm.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">string AlgorithmName { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_IPasswordAlgorithm_Compare_" data-uid="CapyKit.IPasswordAlgorithm.Compare*"></a>
<h3 id="CapyKit_IPasswordAlgorithm_Compare_System_String_System_Byte___System_Object___" data-uid="CapyKit.IPasswordAlgorithm.Compare(System.String,System.Byte[],System.Object[])">
Compare(string, byte[], params object[])
</h3>
<div class="markdown level1 summary"><p>Compares the given plaintext password with an encrypted value using PBKDF2 algorithm.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">bool Compare(string password, byte[] encryptedValue, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>password</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The plaintext password to compare.</p>
</dd>
<dt><code>encryptedValue</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>The encrypted value to compare against.</p>
</dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>Additional arguments for the encryption process, such as salt and length.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>True if the given <code class="paramref">password</code> matches the <code class="paramref">encryptedValue</code>,
false if they are different.</p>
</dd>
</dl>
<a id="CapyKit_IPasswordAlgorithm_Encrypt_" data-uid="CapyKit.IPasswordAlgorithm.Encrypt*"></a>
<h3 id="CapyKit_IPasswordAlgorithm_Encrypt_System_String_System_Object___" data-uid="CapyKit.IPasswordAlgorithm.Encrypt(System.String,System.Object[])">
Encrypt(string, params object[])
</h3>
<div class="markdown level1 summary"><p>Encrypts the given password using a defined algorithm.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">byte[] Encrypt(string password, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>password</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The plaintext password.</p>
</dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>Additional arguments for the encryption process, such as salt and length.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>A byte array with the hashed <code class="paramref">password</code>.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,515 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class Password | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class Password | CapyKit Documentation ">
<meta name="description" content="Represents a password with its hash, salt and algorithm used for encryption.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Password">
<h1 id="CapyKit_Password" data-uid="CapyKit.Password" class="text-break">
Class Password
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Represents a password with its hash, salt and algorithm used for encryption.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class Password</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">Password</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="CapyKit_Password__ctor_" data-uid="CapyKit.Password.#ctor*"></a>
<h3 id="CapyKit_Password__ctor_System_String_System_Byte___CapyKit_IPasswordAlgorithm_System_Object___" data-uid="CapyKit.Password.#ctor(System.String,System.Byte[],CapyKit.IPasswordAlgorithm,System.Object[])">
Password(string, byte[], IPasswordAlgorithm, params object[])
</h3>
<div class="markdown level1 summary"><p>Constructor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Password(string password, byte[] salt, IPasswordAlgorithm algorithm, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>password</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The password to be hashed.</p>
</dd>
<dt><code>salt</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>The salt used for encryption.</p>
</dd>
<dt><code>algorithm</code> <a class="xref" href="CapyKit.IPasswordAlgorithm.html">IPasswordAlgorithm</a></dt>
<dd><p>The algorithm used for password encryption.</p>
</dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>A variable-length parameters list containing arguments to include for the <code class="paramref">algorithm</code>.</p>
</dd>
</dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="CapyKit_Password_Algorithm_" data-uid="CapyKit.Password.Algorithm*"></a>
<h3 id="CapyKit_Password_Algorithm" data-uid="CapyKit.Password.Algorithm">
Algorithm
</h3>
<div class="markdown level1 summary"><p>Gets or sets the algorithm used for password encryption.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public IPasswordAlgorithm Algorithm { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="CapyKit.IPasswordAlgorithm.html">IPasswordAlgorithm</a></dt>
<dd></dd>
</dl>
<a id="CapyKit_Password_Hash_" data-uid="CapyKit.Password.Hash*"></a>
<h3 id="CapyKit_Password_Hash" data-uid="CapyKit.Password.Hash">
Hash
</h3>
<div class="markdown level1 summary"><p>Gets or sets the hash of the password.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public byte[] Hash { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd></dd>
</dl>
<a id="CapyKit_Password_Pbkdf2Algorithm_" data-uid="CapyKit.Password.Pbkdf2Algorithm*"></a>
<h3 id="CapyKit_Password_Pbkdf2Algorithm" data-uid="CapyKit.Password.Pbkdf2Algorithm">
Pbkdf2Algorithm
</h3>
<div class="markdown level1 summary"><p>Gets the preconfigured PBKDF2 algorithm.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static Pbkdf2Algorithm Pbkdf2Algorithm { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="CapyKit.Pbkdf2Algorithm.html">Pbkdf2Algorithm</a></dt>
<dd><p>The preconfigured PBKDF2 algorithm.</p>
</dd>
</dl>
<a id="CapyKit_Password_Salt_" data-uid="CapyKit.Password.Salt*"></a>
<h3 id="CapyKit_Password_Salt" data-uid="CapyKit.Password.Salt">
Salt
</h3>
<div class="markdown level1 summary"><p>Gets or sets the salt used for encryption.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public byte[] Salt { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Password_Equals_" data-uid="CapyKit.Password.Equals*"></a>
<h3 id="CapyKit_Password_Equals_System_Object_" data-uid="CapyKit.Password.Equals(System.Object)">
Equals(object?)
</h3>
<div class="markdown level1 summary"><p>Determines whether the specified object is equal to the current object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override bool Equals(object? obj)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>obj</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></dt>
<dd><p>The object to compare with the current object.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p><a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">true</a> if the specified object is equal to the current object; otherwise, <a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">false</a>.</p>
</dd>
</dl>
<a id="CapyKit_Password_ToString_" data-uid="CapyKit.Password.ToString*"></a>
<h3 id="CapyKit_Password_ToString" data-uid="CapyKit.Password.ToString">
ToString()
</h3>
<div class="markdown level1 summary"><p>Returns a string that represents the current object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override string ToString()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A string that represents the current object.</p>
</dd>
</dl>
<h2 class="section" id="operators">Operators
</h2>
<a id="CapyKit_Password_op_Equality_" data-uid="CapyKit.Password.op_Equality*"></a>
<h3 id="CapyKit_Password_op_Equality_CapyKit_Password_CapyKit_Password_" data-uid="CapyKit.Password.op_Equality(CapyKit.Password,CapyKit.Password)">
operator ==(Password, Password)
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool operator ==(Password a, Password b)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>a</code> <a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd></dd>
<dt><code>b</code> <a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
<a id="CapyKit_Password_op_Inequality_" data-uid="CapyKit.Password.op_Inequality*"></a>
<h3 id="CapyKit_Password_op_Inequality_CapyKit_Password_CapyKit_Password_" data-uid="CapyKit.Password.op_Inequality(CapyKit.Password,CapyKit.Password)">
operator !=(Password, Password)
</h3>
<div class="markdown level1 summary"></div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public static bool operator !=(Password a, Password b)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>a</code> <a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd></dd>
<dt><code>b</code> <a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd></dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd></dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,378 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class Pbkdf2Algorithm | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class Pbkdf2Algorithm | CapyKit Documentation ">
<meta name="description" content="Implements the PBKDF2 algorithm for password encryption.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Pbkdf2Algorithm">
<h1 id="CapyKit_Pbkdf2Algorithm" data-uid="CapyKit.Pbkdf2Algorithm" class="text-break">
Class Pbkdf2Algorithm
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>Implements the PBKDF2 algorithm for password encryption.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class Pbkdf2Algorithm : IPasswordAlgorithm</code></pre>
</div>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">Pbkdf2Algorithm</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="CapyKit.IPasswordAlgorithm.html">IPasswordAlgorithm</a></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="CapyKit_Pbkdf2Algorithm__ctor_" data-uid="CapyKit.Pbkdf2Algorithm.#ctor*"></a>
<h3 id="CapyKit_Pbkdf2Algorithm__ctor" data-uid="CapyKit.Pbkdf2Algorithm.#ctor">
Pbkdf2Algorithm()
</h3>
<div class="markdown level1 summary"><p>Default constructor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Pbkdf2Algorithm()</code></pre>
</div>
<h2 class="section" id="fields">Fields
</h2>
<h3 id="CapyKit_Pbkdf2Algorithm_ITERATIONS" data-uid="CapyKit.Pbkdf2Algorithm.ITERATIONS">
ITERATIONS
</h3>
<div class="markdown level1 summary"><p>The default number of iterations.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const int ITERATIONS = 100000</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h4 class="section" id="CapyKit_Pbkdf2Algorithm_ITERATIONS_remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>This member is immutable.</p>
</div>
<h3 id="CapyKit_Pbkdf2Algorithm_LENGTH" data-uid="CapyKit.Pbkdf2Algorithm.LENGTH">
LENGTH
</h3>
<div class="markdown level1 summary"><p>(Immutable) The default length.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public const int LENGTH = 32</code></pre>
</div>
<h4 class="section">Field Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd></dd>
</dl>
<h4 class="section" id="CapyKit_Pbkdf2Algorithm_LENGTH_remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>This member is immutable.</p>
</div>
<h2 class="section" id="properties">Properties
</h2>
<a id="CapyKit_Pbkdf2Algorithm_AlgorithmName_" data-uid="CapyKit.Pbkdf2Algorithm.AlgorithmName*"></a>
<h3 id="CapyKit_Pbkdf2Algorithm_AlgorithmName" data-uid="CapyKit.Pbkdf2Algorithm.AlgorithmName">
AlgorithmName
</h3>
<div class="markdown level1 summary"><p>Gets the name of the algorithm.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string AlgorithmName { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd></dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Pbkdf2Algorithm_Encrypt_" data-uid="CapyKit.Pbkdf2Algorithm.Encrypt*"></a>
<h3 id="CapyKit_Pbkdf2Algorithm_Encrypt_System_String_System_Object___" data-uid="CapyKit.Pbkdf2Algorithm.Encrypt(System.String,System.Object[])">
Encrypt(string, params object[])
</h3>
<div class="markdown level1 summary"><p>Encrypts the given password using a PBKDF2 algorithm.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public byte[] Encrypt(string password, params object[] args)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>password</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The plaintext password.</p>
</dd>
<dt><code>args</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a>[]</dt>
<dd><p>Additional arguments for the encryption process, specifically</p>
<ol><li><code>salt</code></li><li><code>length</code></li><li><code>iterations</code></li></ol>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.byte">byte</a>[]</dt>
<dd><p>A byte array with the hashed <code class="paramref">password</code>.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,375 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class Pool&lt;T&gt; | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class Pool&lt;T&gt; | CapyKit Documentation ">
<meta name="description" content="A managed pool of resources. This class provides a thread-safe way to manage a collection of objects of type T.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.Pool`1">
<h1 id="CapyKit_Pool_1" data-uid="CapyKit.Pool`1" class="text-break">
Class Pool&lt;T&gt;
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>A managed pool of resources. This class provides a thread-safe way to manage a collection of
objects of type <code class="typeparamref">T</code>.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class Pool&lt;T&gt;</code></pre>
</div>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of objects to be managed by the pool.</p>
</dd>
</dl>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">Pool&lt;T&gt;</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="CapyKit_Pool_1__ctor_" data-uid="CapyKit.Pool`1.#ctor*"></a>
<h3 id="CapyKit_Pool_1__ctor_System_Collections_Generic_IEnumerable__0__" data-uid="CapyKit.Pool`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
Pool(IEnumerable&lt;T&gt;)
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="CapyKit.Pool-1.html">Pool&lt;T&gt;</a> class with the specified collection
of items.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Pool(IEnumerable&lt;T&gt; collection)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>collection</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1">IEnumerable</a>&lt;T&gt;</dt>
<dd><p>The collection of <code class="typeparamref">T</code> items with which to seed the pool.</p>
</dd>
</dl>
<a id="CapyKit_Pool_1__ctor_" data-uid="CapyKit.Pool`1.#ctor*"></a>
<h3 id="CapyKit_Pool_1__ctor_System_Int32_" data-uid="CapyKit.Pool`1.#ctor(System.Int32)">
Pool(int)
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="CapyKit.Pool-1.html">Pool&lt;T&gt;</a> class with the specified pool size.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Pool(int poolSize)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>poolSize</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The size of the pool.</p>
</dd>
</dl>
<a id="CapyKit_Pool_1__ctor_" data-uid="CapyKit.Pool`1.#ctor*"></a>
<h3 id="CapyKit_Pool_1__ctor_System_Int32_System_Func__0__" data-uid="CapyKit.Pool`1.#ctor(System.Int32,System.Func{`0})">
Pool(int, Func&lt;T&gt;)
</h3>
<div class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="CapyKit.Pool-1.html">Pool&lt;T&gt;</a> class with the specified pool size
and constructor selector.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public Pool(int poolSize, Func&lt;T&gt; constructorSelector)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>poolSize</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The size of the pool.</p>
</dd>
<dt><code>constructorSelector</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-1">Func</a>&lt;T&gt;</dt>
<dd><p>The constructor selector used to create new instances of <code class="typeparamref">T</code>.</p>
</dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_Pool_1_GetAvailableItem_" data-uid="CapyKit.Pool`1.GetAvailableItem*"></a>
<h3 id="CapyKit_Pool_1_GetAvailableItem" data-uid="CapyKit.Pool`1.GetAvailableItem">
GetAvailableItem()
</h3>
<div class="markdown level1 summary"><p>Gets the first available item from the pool and sets its lock.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public PoolItem&lt;T&gt; GetAvailableItem()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="CapyKit.PoolItem-1.html">PoolItem</a>&lt;T&gt;</dt>
<dd><p>The first available item from the pool.</p>
</dd>
</dl>
<a id="CapyKit_Pool_1_ReleaseItem_" data-uid="CapyKit.Pool`1.ReleaseItem*"></a>
<h3 id="CapyKit_Pool_1_ReleaseItem_CapyKit_PoolItem__0__" data-uid="CapyKit.Pool`1.ReleaseItem(CapyKit.PoolItem{`0})">
ReleaseItem(PoolItem&lt;T&gt;)
</h3>
<div class="markdown level1 summary"><p>Releases the lock on the specified item and returns it to the pool.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ReleaseItem(PoolItem&lt;T&gt; item)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>item</code> <a class="xref" href="CapyKit.PoolItem-1.html">PoolItem</a>&lt;T&gt;</dt>
<dd><p>The item to release.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_Pool_1_ReleaseItem_CapyKit_PoolItem__0___remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>This method sets the <a class="xref" href="CapyKit.PoolItem-1.html#CapyKit_PoolItem_1_Locked">Locked</a> flag to <a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">false</a> so that
it can be retrieved by <a class="xref" href="CapyKit.Pool-1.html#CapyKit_Pool_1_GetAvailableItem">GetAvailableItem()</a>.</p>
</div>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,426 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class PoolItem&lt;T&gt; | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class PoolItem&lt;T&gt; | CapyKit Documentation ">
<meta name="description" content="A pool item. This class cannot be inherited.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.PoolItem`1">
<h1 id="CapyKit_PoolItem_1" data-uid="CapyKit.PoolItem`1" class="text-break">
Class PoolItem&lt;T&gt;
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>A pool item. This class cannot be inherited.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public sealed class PoolItem&lt;T&gt;</code></pre>
</div>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>The type of the pooled item.</p>
</dd>
</dl>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">PoolItem&lt;T&gt;</span></div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 class="section" id="properties">Properties
</h2>
<a id="CapyKit_PoolItem_1_Index_" data-uid="CapyKit.PoolItem`1.Index*"></a>
<h3 id="CapyKit_PoolItem_1_Index" data-uid="CapyKit.PoolItem`1.Index">
Index
</h3>
<div class="markdown level1 summary"><p>Gets the zero-based index of the pooled item.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int Index { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>The index.</p>
</dd>
</dl>
<a id="CapyKit_PoolItem_1_Item_" data-uid="CapyKit.PoolItem`1.Item*"></a>
<h3 id="CapyKit_PoolItem_1_Item" data-uid="CapyKit.PoolItem`1.Item">
Item
</h3>
<div class="markdown level1 summary"><p>Gets the pooled resource.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public T Item { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><span class="xref">T</span></dt>
<dd><p>The pooled resource.</p>
</dd>
</dl>
<a id="CapyKit_PoolItem_1_Locked_" data-uid="CapyKit.PoolItem`1.Locked*"></a>
<h3 id="CapyKit_PoolItem_1_Locked" data-uid="CapyKit.PoolItem`1.Locked">
Locked
</h3>
<div class="markdown level1 summary"><p>Gets a value indicating whether this object is locked or not.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool Locked { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p>A value indicating whether this object is locked or not.</p>
</dd>
</dl>
<a id="CapyKit_PoolItem_1_TypeName_" data-uid="CapyKit.PoolItem`1.TypeName*"></a>
<h3 id="CapyKit_PoolItem_1_TypeName" data-uid="CapyKit.PoolItem`1.TypeName">
TypeName
</h3>
<div class="markdown level1 summary"><p>Gets the name of the <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.type">Type</a> of the pooled item.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public string TypeName { get; }</code></pre>
</div>
<h4 class="section">Property Value</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>The name of the <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.type">Type</a> of the pooled item.</p>
</dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_PoolItem_1_ReleaseLock_" data-uid="CapyKit.PoolItem`1.ReleaseLock*"></a>
<h3 id="CapyKit_PoolItem_1_ReleaseLock" data-uid="CapyKit.PoolItem`1.ReleaseLock">
ReleaseLock()
</h3>
<div class="markdown level1 summary"><p>Releases the lock on the item.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public void ReleaseLock()</code></pre>
</div>
<h4 class="section" id="CapyKit_PoolItem_1_ReleaseLock_remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>If the item is not locked, an error event is emitted.</p>
</div>
<a id="CapyKit_PoolItem_1_SetLock_" data-uid="CapyKit.PoolItem`1.SetLock*"></a>
<h3 id="CapyKit_PoolItem_1_SetLock" data-uid="CapyKit.PoolItem`1.SetLock">
SetLock()
</h3>
<div class="markdown level1 summary"><p>Sets the lock on the item indicating that it is in use.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool SetLock()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p><a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">true</a> if the item is locked successfully, <a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">false</a> if it
fails.</p>
</dd>
</dl>
<h4 class="section" id="CapyKit_PoolItem_1_SetLock_remarks">Remarks</h4>
<div class="markdown level1 remarks"><p>If the item is already locked, an error event is emitted.</p>
</div>
<a id="CapyKit_PoolItem_1_ToString_" data-uid="CapyKit.PoolItem`1.ToString*"></a>
<h3 id="CapyKit_PoolItem_1_ToString" data-uid="CapyKit.PoolItem`1.ToString">
ToString()
</h3>
<div class="markdown level1 summary"><p>Returns a string that represents the current object and its lock state.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public override string ToString()</code></pre>
</div>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.string">string</a></dt>
<dd><p>A string that represents the current object and its lock state.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,361 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Class PropertyComparer&lt;T, U&gt; | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Class PropertyComparer&lt;T, U&gt; | CapyKit Documentation ">
<meta name="description" content="A object comparer that can accept a lambda expression to compare properties.">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit.PropertyComparer`2">
<h1 id="CapyKit_PropertyComparer_2" data-uid="CapyKit.PropertyComparer`2" class="text-break">
Class PropertyComparer&lt;T, U&gt;
</h1>
<div class="facts text-secondary">
<dl><dt>Namespace</dt><dd><a class="xref" href="CapyKit.html">CapyKit</a></dd></dl>
<dl><dt>Assembly</dt><dd>CapyKit.dll</dd></dl>
</div>
<div class="markdown summary"><p>A object comparer that can accept a lambda expression to compare properties.</p>
</div>
<div class="markdown conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public class PropertyComparer&lt;T, U&gt; : IEqualityComparer&lt;T&gt;</code></pre>
</div>
<h4 class="section">Type Parameters</h4>
<dl class="parameters">
<dt><code>T</code></dt>
<dd><p>Generic type parameter of the parent object.</p>
</dd>
<dt><code>U</code></dt>
<dd><p>Generic type parameter of the property value.</p>
</dd>
</dl>
<dl class="typelist inheritance">
<dt>Inheritance</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
<div><span class="xref">PropertyComparer&lt;T, U&gt;</span></div>
</dd>
</dl>
<dl class="typelist implements">
<dt>Implements</dt>
<dd>
<div><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.collections.generic.iequalitycomparer-1">IEqualityComparer</a>&lt;T&gt;</div>
</dd>
</dl>
<dl class="typelist inheritedMembers">
<dt>Inherited Members</dt>
<dd>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object, object)</a>
</div>
<div>
<a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>
</div>
</dd></dl>
<dl class="typelist extensionMethods">
<dt>Extension Methods</dt>
<dd>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties__1___0___0_">ObjectExtensions.UpdateProperties&lt;T&gt;(T, T)</a>
</div>
<div>
<a class="xref" href="CapyKit.Extensions.ObjectExtensions.html#CapyKit_Extensions_ObjectExtensions_UpdateProperties_System_Object_System_Object_">ObjectExtensions.UpdateProperties(object, object)</a>
</div>
</dd></dl>
<h2 id="CapyKit_PropertyComparer_2_examples">Examples</h2>
<p>using System;
using System.Collections.Generic;
using System.Linq;</p>
<p>class Program
{
static void Main(string[] args)
{
var people = new List&lt;Person&gt;
{
new Person { Name = &quot;Alice&quot;, Age = 30 }, new Person { Name = &quot;Bob&quot;, Age = 30 }, new
Person { Name = &quot;Charlie&quot;, Age = 35 }
};</p>
<pre><code> var comparer = new PropertyComparer&lt;Person, int&gt;(p =&gt; p.Age);
var distinctPeople = people.Distinct(comparer).ToList();
foreach (var person in distinctPeople)
{
Console.WriteLine($&quot;{person.Name} - {person.Age}&quot;);
}
}
</code></pre>
<p>}</p>
<p>class Person
{
public string Name { get; set; }
public int Age { get; set; }
}</p>
<h2 class="section" id="constructors">Constructors
</h2>
<a id="CapyKit_PropertyComparer_2__ctor_" data-uid="CapyKit.PropertyComparer`2.#ctor*"></a>
<h3 id="CapyKit_PropertyComparer_2__ctor_System_Func__0__1__" data-uid="CapyKit.PropertyComparer`2.#ctor(System.Func{`0,`1})">
PropertyComparer(Func&lt;T, U&gt;)
</h3>
<div class="markdown level1 summary"><p>Constructor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public PropertyComparer(Func&lt;T, U&gt; expression)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>expression</code> <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.func-2">Func</a>&lt;T, U&gt;</dt>
<dd><p>The expression.</p>
</dd>
</dl>
<h2 class="section" id="methods">Methods
</h2>
<a id="CapyKit_PropertyComparer_2_Equals_" data-uid="CapyKit.PropertyComparer`2.Equals*"></a>
<h3 id="CapyKit_PropertyComparer_2_Equals__0__0_" data-uid="CapyKit.PropertyComparer`2.Equals(`0,`0)">
Equals(T, T)
</h3>
<div class="markdown level1 summary"><p>Determines whether the specified properties are equal.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public bool Equals(T x, T y)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>x</code> <span class="xref">T</span></dt>
<dd><p>The first object of type <code class="typeparamref">T</code> to compare.</p>
</dd>
<dt><code>y</code> <span class="xref">T</span></dt>
<dd><p>The second object of type <code class="typeparamref">T</code> to compare.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.boolean">bool</a></dt>
<dd><p><a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">true</a> if the specified objects are equal; otherwise,
<a href="https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool">false</a>.</p>
</dd>
</dl>
<a id="CapyKit_PropertyComparer_2_GetHashCode_" data-uid="CapyKit.PropertyComparer`2.GetHashCode*"></a>
<h3 id="CapyKit_PropertyComparer_2_GetHashCode__0_" data-uid="CapyKit.PropertyComparer`2.GetHashCode(`0)">
GetHashCode(T)
</h3>
<div class="markdown level1 summary"><p>Returns a hash code for the specified object.</p>
</div>
<div class="markdown level1 conceptual"></div>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public int GetHashCode(T obj)</code></pre>
</div>
<h4 class="section">Parameters</h4>
<dl class="parameters">
<dt><code>obj</code> <span class="xref">T</span></dt>
<dd><p>The <a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a> for which a hash code is to be returned.</p>
</dd>
</dl>
<h4 class="section">Returns</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.int32">int</a></dt>
<dd><p>A hash code for the specified object.</p>
</dd>
</dl>
<h4 class="section">Exceptions</h4>
<dl class="parameters">
<dt><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.argumentnullexception">ArgumentNullException</a></dt>
<dd><p>The type of <code class="paramref">obj</code> is a reference type and
<code class="paramref">obj</code> is
<a href="https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null">null</a>.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

198
Docs/_site/api/CapyKit.html Normal file
View file

@ -0,0 +1,198 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Namespace CapyKit | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Namespace CapyKit | CapyKit Documentation ">
<link rel="icon" href="../favicon.ico">
<link rel="stylesheet" href="../public/docfx.min.css">
<link rel="stylesheet" href="../public/main.css">
<meta name="docfx:navrel" content="../toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="../">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./../public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="ManagedReference">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="../index.html">
<img id="logo" class="svg" src="../logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="toc-offcanvas">
<div class="offcanvas-md offcanvas-start" tabindex="-1" id="tocOffcanvas" aria-labelledby="tocOffcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="tocOffcanvasLabel">Table of Contents</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#tocOffcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<nav class="toc" id="toc"></nav>
</div>
</div>
</div>
<div class="content">
<div class="actionbar">
<button class="btn btn-lg border-0 d-md-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#tocOffcanvas" aria-controls="tocOffcanvas" aria-expanded="false" aria-label="Show table of contents">
<i class="bi bi-list"></i>
</button>
<nav id="breadcrumb"></nav>
</div>
<article data-uid="CapyKit">
<h1 id="CapyKit" data-uid="CapyKit" class="text-break">Namespace CapyKit</h1>
<div class="markdown level0 summary"></div>
<div class="markdown level0 conceptual"></div>
<div class="markdown level0 remarks"></div>
<h3 id="classes">
Classes
</h3>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.CapyEventArgs.html">CapyEventArgs</a></dt>
<dd><p>The CapyEventArgs class represents an event argument instance with event level, message, and
method name information.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.CapyEventReporter.html">CapyEventReporter</a></dt>
<dd><p>The CapyEventReporter class is responsible for managing event subscriptions and emissions within CapyKit.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Color.html">Color</a></dt>
<dd><p>An object representing a color.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.EncryptedValue-1.html">EncryptedValue&lt;T&gt;</a></dt>
<dd></dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Password.html">Password</a></dt>
<dd><p>Represents a password with its hash, salt and algorithm used for encryption.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Pbkdf2Algorithm.html">Pbkdf2Algorithm</a></dt>
<dd><p>Implements the PBKDF2 algorithm for password encryption.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.PoolItem-1.html">PoolItem&lt;T&gt;</a></dt>
<dd><p>A pool item. This class cannot be inherited.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.Pool-1.html">Pool&lt;T&gt;</a></dt>
<dd><p>A managed pool of resources. This class provides a thread-safe way to manage a collection of
objects of type <code class="typeparamref">T</code>.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.PropertyComparer-2.html">PropertyComparer&lt;T, U&gt;</a></dt>
<dd><p>A object comparer that can accept a lambda expression to compare properties.</p>
</dd>
</dl>
<h3 id="interfaces">
Interfaces
</h3>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.IPasswordAlgorithm.html">IPasswordAlgorithm</a></dt>
<dd><p>Defines the contract for password encryption algorithms.</p>
</dd>
</dl>
<h3 id="enums">
Enums
</h3>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.EventLevel.html">EventLevel</a></dt>
<dd><p>Enumeration representing different event level severity values.</p>
</dd>
</dl>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.NamedColor.html">NamedColor</a></dt>
<dd><p>Enum representing a set of named colors with their corresponding HEX values. These colors are
inspired by the XKCD color palette (<a href="https://xkcd.com/color/rgb/" target="_blank">Link</a>).</p>
</dd>
</dl>
<h3 id="delegates">
Delegates
</h3>
<dl class="jumplist">
<dt><a class="xref" href="CapyKit.CapyEventHandler.html">CapyEventHandler</a></dt>
<dd><p>A delegate representing an event handler that accepts a <a class="xref" href="CapyKit.CapyEventArgs.html">CapyEventArgs</a> instance.</p>
</dd>
</dl>
</article>
<div class="contribution d-print-none">
</div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

147
Docs/_site/api/toc.html Normal file
View file

@ -0,0 +1,147 @@
<div id="sidetoggle">
<div>
<div class="sidefilter">
<form class="toc-filter">
<span class="glyphicon glyphicon-filter filter-icon"></span>
<span class="glyphicon glyphicon-remove clear-icon" id="toc_filter_clear"></span>
<input type="text" id="toc_filter_input" placeholder="Filter by title" onkeypress="if(event.keyCode==13) {return false;}">
</form>
</div>
<div class="sidetoc">
<div class="toc" id="toc">
<ul class="nav level1">
<li>
<span class="expand-stub"></span>
<a href="CapyKit.html" name="" title="CapyKit">CapyKit</a>
<ul class="nav level2">
<li>
<a href="CapyKit.CapyEventArgs.html" name="" title="CapyEventArgs">CapyEventArgs</a>
</li>
<li>
<a href="CapyKit.CapyEventHandler.html" name="" title="CapyEventHandler">CapyEventHandler</a>
</li>
<li>
<a href="CapyKit.CapyEventReporter.html" name="" title="CapyEventReporter">CapyEventReporter</a>
</li>
<li>
<a href="CapyKit.Color.html" name="" title="Color">Color</a>
</li>
<li>
<a href="CapyKit.EncryptedValue-1.html" name="" title="EncryptedValue&lt;T&gt;">EncryptedValue&lt;T&gt;</a>
</li>
<li>
<a href="CapyKit.EventLevel.html" name="" title="EventLevel">EventLevel</a>
</li>
<li>
<a href="CapyKit.IPasswordAlgorithm.html" name="" title="IPasswordAlgorithm">IPasswordAlgorithm</a>
</li>
<li>
<a href="CapyKit.NamedColor.html" name="" title="NamedColor">NamedColor</a>
</li>
<li>
<a href="CapyKit.Password.html" name="" title="Password">Password</a>
</li>
<li>
<a href="CapyKit.Pbkdf2Algorithm.html" name="" title="Pbkdf2Algorithm">Pbkdf2Algorithm</a>
</li>
<li>
<a href="CapyKit.PoolItem-1.html" name="" title="PoolItem&lt;T&gt;">PoolItem&lt;T&gt;</a>
</li>
<li>
<a href="CapyKit.Pool-1.html" name="" title="Pool&lt;T&gt;">Pool&lt;T&gt;</a>
</li>
<li>
<a href="CapyKit.PropertyComparer-2.html" name="" title="PropertyComparer&lt;T, U&gt;">PropertyComparer&lt;T, U&gt;</a>
</li>
</ul>
</li>
<li>
<span class="expand-stub"></span>
<a href="CapyKit.Attributes.html" name="" title="CapyKit.Attributes">CapyKit.Attributes</a>
<ul class="nav level2">
<li>
<a href="CapyKit.Attributes.EnumerationAttribute-1.html" name="" title="EnumerationAttribute&lt;T&gt;">EnumerationAttribute&lt;T&gt;</a>
</li>
<li>
<a href="CapyKit.Attributes.EnumerationDescriptionAttribute.html" name="" title="EnumerationDescriptionAttribute">EnumerationDescriptionAttribute</a>
</li>
<li>
<a href="CapyKit.Attributes.ValueFormatAttribute.html" name="" title="ValueFormatAttribute">ValueFormatAttribute</a>
</li>
</ul>
</li>
<li>
<span class="expand-stub"></span>
<a href="CapyKit.Enumerations.html" name="" title="CapyKit.Enumerations">CapyKit.Enumerations</a>
<ul class="nav level2">
<li>
<a href="CapyKit.Enumerations.MeasurementSystem.html" name="" title="MeasurementSystem">MeasurementSystem</a>
</li>
</ul>
</li>
<li>
<span class="expand-stub"></span>
<a href="CapyKit.Extensions.html" name="" title="CapyKit.Extensions">CapyKit.Extensions</a>
<ul class="nav level2">
<li>
<a href="CapyKit.Extensions.EnumerationExtensions.html" name="" title="EnumerationExtensions">EnumerationExtensions</a>
</li>
<li>
<a href="CapyKit.Extensions.LINQExtensions.html" name="" title="LINQExtensions">LINQExtensions</a>
</li>
<li>
<a href="CapyKit.Extensions.ObjectExtensions.html" name="" title="ObjectExtensions">ObjectExtensions</a>
</li>
<li>
<a href="CapyKit.Extensions.StringExtensions.html" name="" title="StringExtensions">StringExtensions</a>
</li>
</ul>
</li>
<li>
<span class="expand-stub"></span>
<a href="CapyKit.Helpers.html" name="" title="CapyKit.Helpers">CapyKit.Helpers</a>
<ul class="nav level2">
<li>
<a href="CapyKit.Helpers.CalculationHelper.html" name="" title="CalculationHelper">CalculationHelper</a>
</li>
<li>
<a href="CapyKit.Helpers.CompressionHelper.html" name="" title="CompressionHelper">CompressionHelper</a>
</li>
<li>
<a href="CapyKit.Helpers.EncryptionHelper.html" name="" title="EncryptionHelper">EncryptionHelper</a>
</li>
<li>
<a href="CapyKit.Helpers.IEncryptionAlgorithm.html" name="" title="IEncryptionAlgorithm">IEncryptionAlgorithm</a>
</li>
<li>
<a href="CapyKit.Helpers.KeyHelper.html" name="" title="KeyHelper">KeyHelper</a>
</li>
<li>
<a href="CapyKit.Helpers.LanguageHelper.html" name="" title="LanguageHelper">LanguageHelper</a>
</li>
<li>
<a href="CapyKit.Helpers.SecurityHelper.html" name="" title="SecurityHelper">SecurityHelper</a>
</li>
<li>
<a href="CapyKit.Helpers.SerializationHelper.html" name="" title="SerializationHelper">SerializationHelper</a>
</li>
<li>
<a href="CapyKit.Helpers.SettingsHelper.html" name="" title="SettingsHelper">SettingsHelper</a>
</li>
<li>
<a href="CapyKit.Helpers.ValidCharacterCollection.html" name="" title="ValidCharacterCollection">ValidCharacterCollection</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>

2
Docs/_site/api/toc.json Normal file

File diff suppressed because one or more lines are too long

BIN
Docs/_site/favicon.ico Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View file

@ -0,0 +1,101 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Getting Started | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Getting Started | CapyKit Documentation ">
<link rel="icon" href="favicon.ico">
<link rel="stylesheet" href="public/docfx.min.css">
<link rel="stylesheet" href="public/main.css">
<meta name="docfx:navrel" content="toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="index.html">
<img id="logo" class="svg" src="logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="content">
<div class="actionbar">
<nav id="breadcrumb"></nav>
</div>
<article data-uid="">
<h1 id="getting-started">Getting Started</h1>
</article>
<div class="contribution d-print-none">
</div>
<div class="next-article d-print-none border-top" id="nextArticle"></div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

106
Docs/_site/index.html Normal file
View file

@ -0,0 +1,106 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>This is the HOMEPAGE. | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="This is the HOMEPAGE. | CapyKit Documentation ">
<link rel="icon" href="favicon.ico">
<link rel="stylesheet" href="public/docfx.min.css">
<link rel="stylesheet" href="public/main.css">
<meta name="docfx:navrel" content="toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="landing" data-yaml-mime="">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="index.html">
<img id="logo" class="svg" src="logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="content">
<div class="actionbar">
<nav id="breadcrumb"></nav>
</div>
<article data-uid="">
<h1 id="this-is-the-homepage">This is the <strong>HOMEPAGE</strong>.</h1>
<p>Refer to <a href="http://daringfireball.net/projects/markdown/">Markdown</a> for how to write markdown files.</p>
<h2 id="quick-start-notes">Quick Start Notes:</h2>
<ol>
<li>Add images to the <em>images</em> folder if the file is referencing an image.</li>
</ol>
</article>
<div class="contribution d-print-none">
</div>
<div class="next-article d-print-none border-top" id="nextArticle"></div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

197
Docs/_site/index.json Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,101 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Introduction | CapyKit Documentation </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="title" content="Introduction | CapyKit Documentation ">
<link rel="icon" href="favicon.ico">
<link rel="stylesheet" href="public/docfx.min.css">
<link rel="stylesheet" href="public/main.css">
<meta name="docfx:navrel" content="toc.html">
<meta name="docfx:tocrel" content="toc.html">
<meta name="docfx:rel" content="">
<meta name="loc:inThisArticle" content="In this article">
<meta name="loc:searchResultsCount" content="{count} results for &quot;{query}&quot;">
<meta name="loc:searchNoResults" content="No results for &quot;{query}&quot;">
<meta name="loc:tocFilter" content="Filter by title">
<meta name="loc:nextArticle" content="Next">
<meta name="loc:prevArticle" content="Previous">
<meta name="loc:themeLight" content="Light">
<meta name="loc:themeDark" content="Dark">
<meta name="loc:themeAuto" content="Auto">
<meta name="loc:changeTheme" content="Change theme">
<meta name="loc:copy" content="Copy">
<meta name="loc:downloadPdf" content="Download PDF">
<script type="module" src="./public/docfx.min.js"></script>
<script>
const theme = localStorage.getItem('theme') || 'auto'
document.documentElement.setAttribute('data-bs-theme', theme === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : theme)
</script>
</head>
<body class="tex2jax_ignore" data-layout="" data-yaml-mime="">
<header class="bg-body border-bottom">
<nav id="autocollapse" class="navbar navbar-expand-md" role="navigation">
<div class="container-xxl flex-nowrap">
<a class="navbar-brand" href="index.html">
<img id="logo" class="svg" src="logo.svg" alt="CapyKit Documentation">
CapyKit Documentation
</a>
<button class="btn btn-lg d-md-none border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navpanel" aria-controls="navpanel" aria-expanded="false" aria-label="Toggle navigation">
<i class="bi bi-three-dots"></i>
</button>
<div class="collapse navbar-collapse" id="navpanel">
<div id="navbar">
<form class="search" role="search" id="search">
<i class="bi bi-search"></i>
<input class="form-control" id="search-query" type="search" disabled placeholder="Search" autocomplete="off" aria-label="Search">
</form>
</div>
</div>
</div>
</nav>
</header>
<main class="container-xxl">
<div class="content">
<div class="actionbar">
<nav id="breadcrumb"></nav>
</div>
<article data-uid="">
<h1 id="introduction">Introduction</h1>
</article>
<div class="contribution d-print-none">
</div>
<div class="next-article d-print-none border-top" id="nextArticle"></div>
</div>
<div class="affix">
<nav id="affix"></nav>
</div>
</main>
<div class="container-xxl search-results" id="search-results"></div>
<footer class="border-top text-secondary">
<div class="container-xxl">
<div class="flex-fill">
<span>Made with <a href="https://dotnet.github.io/docfx">docfx</a></span>
</div>
</div>
</footer>
</body>
</html>

25
Docs/_site/logo.svg Executable file
View file

@ -0,0 +1,25 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="38.000000pt" height="38.000000pt" viewBox="0 0 172.000000 172.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by Docfx
</metadata>
<g transform="translate(0.000000,172.000000) scale(0.100000,-0.100000)"
fill="#dddddd" stroke="none">
<path d="M230 1359 c0 -18 11 -30 44 -48 80 -42 81 -45 81 -441 0 -400 -1
-404 -79 -436 -36 -15 -46 -24 -46 -43 0 -23 2 -24 61 -17 34 3 88 6 120 6
l59 0 0 495 0 495 -82 0 c-46 0 -100 3 -120 6 -35 6 -38 5 -38 -17z"/>
<path d="M618 1373 l-118 -4 0 -493 0 -494 154 -7 c181 -9 235 -3 313 34 68
33 168 130 207 202 75 136 75 384 1 536 -71 145 -234 240 -399 231 -23 -1 -94
-4 -158 -5z m287 -119 c68 -24 144 -101 176 -179 22 -54 24 -75 24 -210 0
-141 -2 -153 -26 -206 -36 -76 -89 -132 -152 -160 -45 -21 -68 -24 -164 -24
-71 0 -116 4 -123 11 -22 22 -31 175 -28 463 2 208 6 293 15 302 32 32 188 33
278 3z"/>
<path d="M1170 1228 c75 -104 110 -337 76 -508 -21 -100 -56 -178 -105 -233
l-36 -41 34 20 c75 43 160 133 198 212 37 75 38 78 38 191 -1 129 -18 191 -75
270 -28 38 -136 131 -153 131 -4 0 6 -19 23 -42z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

579
Docs/_site/manifest.json Normal file
View file

@ -0,0 +1,579 @@
{
"source_base_path": "/home/jordanwages/Git/CapyKit/Docs",
"xrefmap": "xrefmap.yml",
"files": [
{
"type": "Resource",
"output": {
"resource": {
"relative_path": "index.json"
}
}
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Attributes.EnumerationAttribute-1.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Attributes.EnumerationAttribute-1.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Attributes.EnumerationAttribute<T>",
"Summary": "<p sourcefile=\"api/CapyKit.Attributes.EnumerationAttribute-1.yml\" sourcestartlinenumber=\"1\">Custom attribute class for decorating enumeration fields with additional data.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Attributes.EnumerationDescriptionAttribute.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Attributes.EnumerationDescriptionAttribute.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Attributes.EnumerationDescriptionAttribute",
"Summary": "<p sourcefile=\"api/CapyKit.Attributes.EnumerationDescriptionAttribute.yml\" sourcestartlinenumber=\"1\">An attribute class for decorating enumeration fields with a description.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Attributes.ValueFormatAttribute.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Attributes.ValueFormatAttribute.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Attributes.ValueFormatAttribute",
"Summary": "<p sourcefile=\"api/CapyKit.Attributes.ValueFormatAttribute.yml\" sourcestartlinenumber=\"1\">Custom attribute for formatting values in a specific way.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Attributes.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Attributes.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Attributes",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.CapyEventArgs.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.CapyEventArgs.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.CapyEventArgs",
"Summary": "<p sourcefile=\"api/CapyKit.CapyEventArgs.yml\" sourcestartlinenumber=\"1\">The CapyEventArgs class represents an event argument instance with event level, message, and\nmethod name information.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.CapyEventHandler.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.CapyEventHandler.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.CapyEventHandler",
"Summary": "<p sourcefile=\"api/CapyKit.CapyEventHandler.yml\" sourcestartlinenumber=\"1\">A delegate representing an event handler that accepts a <xref href=\"CapyKit.CapyEventArgs\" data-throw-if-not-resolved=\"false\"></xref> instance.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.CapyEventReporter.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.CapyEventReporter.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.CapyEventReporter",
"Summary": "<p sourcefile=\"api/CapyKit.CapyEventReporter.yml\" sourcestartlinenumber=\"1\">The CapyEventReporter class is responsible for managing event subscriptions and emissions within CapyKit.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Color.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Color.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Color",
"Summary": "<p sourcefile=\"api/CapyKit.Color.yml\" sourcestartlinenumber=\"1\">An object representing a color.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.EncryptedValue-1.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.EncryptedValue-1.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.EncryptedValue<T>",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Enumerations.MeasurementSystem.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Enumerations.MeasurementSystem.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Enumerations.MeasurementSystem",
"Summary": "<p sourcefile=\"api/CapyKit.Enumerations.MeasurementSystem.yml\" sourcestartlinenumber=\"1\">An enumeration representing different measurement systems.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Enumerations.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Enumerations.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Enumerations",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.EventLevel.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.EventLevel.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.EventLevel",
"Summary": "<p sourcefile=\"api/CapyKit.EventLevel.yml\" sourcestartlinenumber=\"1\">Enumeration representing different event level severity values.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Extensions.EnumerationExtensions.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Extensions.EnumerationExtensions.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Extensions.EnumerationExtensions",
"Summary": "<p sourcefile=\"api/CapyKit.Extensions.EnumerationExtensions.yml\" sourcestartlinenumber=\"1\">Provides static extentions methods for providing additional functionality for <xref href=\"System.Enum\" data-throw-if-not-resolved=\"false\"></xref> types.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Extensions.LINQExtensions.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Extensions.LINQExtensions.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Extensions.LINQExtensions",
"Summary": "<p sourcefile=\"api/CapyKit.Extensions.LINQExtensions.yml\" sourcestartlinenumber=\"1\">Provides static extension methods for performing common LINQ operations on <xref href=\"System.Collections.Generic.IEnumerable%601\" data-throw-if-not-resolved=\"false\"></xref> and <xref href=\"System.Linq.IQueryable%601\" data-throw-if-not-resolved=\"false\"></xref> collections.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Extensions.ObjectExtensions.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Extensions.ObjectExtensions.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Extensions.ObjectExtensions",
"Summary": "<p sourcefile=\"api/CapyKit.Extensions.ObjectExtensions.yml\" sourcestartlinenumber=\"1\">An class containing extenstions that apply to any object type.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Extensions.StringExtensions.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Extensions.StringExtensions.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Extensions.StringExtensions",
"Summary": "<p sourcefile=\"api/CapyKit.Extensions.StringExtensions.yml\" sourcestartlinenumber=\"1\">Provides static extentions methods for providing additional functionality for <xref href=\"System.String\" data-throw-if-not-resolved=\"false\"></xref> types.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Extensions.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Extensions.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Extensions",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.CalculationHelper.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.CalculationHelper.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers.CalculationHelper",
"Summary": "<p sourcefile=\"api/CapyKit.Helpers.CalculationHelper.yml\" sourcestartlinenumber=\"1\">Static class providing helper methods for various calculations.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.CompressionHelper.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.CompressionHelper.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers.CompressionHelper",
"Summary": "<p sourcefile=\"api/CapyKit.Helpers.CompressionHelper.yml\" sourcestartlinenumber=\"1\">A class that contains methods for managing data compression.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.EncryptionHelper.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.EncryptionHelper.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers.EncryptionHelper",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.IEncryptionAlgorithm.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.IEncryptionAlgorithm.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers.IEncryptionAlgorithm",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.KeyHelper.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.KeyHelper.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers.KeyHelper",
"Summary": "<p sourcefile=\"api/CapyKit.Helpers.KeyHelper.yml\" sourcestartlinenumber=\"1\">A class that contains methods for managing key creation and validation against a master key.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.LanguageHelper.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.LanguageHelper.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers.LanguageHelper",
"Summary": "<p sourcefile=\"api/CapyKit.Helpers.LanguageHelper.yml\" sourcestartlinenumber=\"1\">Helper class for handling text transformations.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.SecurityHelper.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.SecurityHelper.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers.SecurityHelper",
"Summary": "<p sourcefile=\"api/CapyKit.Helpers.SecurityHelper.yml\" sourcestartlinenumber=\"1\">A class that contains methods for managing secure data processing and cryptography.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.SerializationHelper.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.SerializationHelper.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers.SerializationHelper",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.SettingsHelper.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.SettingsHelper.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers.SettingsHelper",
"Summary": "<p sourcefile=\"api/CapyKit.Helpers.SettingsHelper.yml\" sourcestartlinenumber=\"1\">Static class containing helper methods for retrieving and setting application settings.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.ValidCharacterCollection.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.ValidCharacterCollection.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers.ValidCharacterCollection",
"Summary": "<p sourcefile=\"api/CapyKit.Helpers.ValidCharacterCollection.yml\" sourcestartlinenumber=\"1\">An enumeration that defines the types of characters that can be included in a random string.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Helpers.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Helpers.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Helpers",
"Summary": null
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.IPasswordAlgorithm.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.IPasswordAlgorithm.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.IPasswordAlgorithm",
"Summary": "<p sourcefile=\"api/CapyKit.IPasswordAlgorithm.yml\" sourcestartlinenumber=\"1\">Defines the contract for password encryption algorithms.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.NamedColor.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.NamedColor.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.NamedColor",
"Summary": "<p sourcefile=\"api/CapyKit.NamedColor.yml\" sourcestartlinenumber=\"1\">Enum representing a set of named colors with their corresponding HEX values. These colors are\ninspired by the XKCD color palette (<a href=\"https://xkcd.com/color/rgb/\" target=\"_blank\">Link</a>).</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Password.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Password.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Password",
"Summary": "<p sourcefile=\"api/CapyKit.Password.yml\" sourcestartlinenumber=\"1\">Represents a password with its hash, salt and algorithm used for encryption.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Pbkdf2Algorithm.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Pbkdf2Algorithm.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Pbkdf2Algorithm",
"Summary": "<p sourcefile=\"api/CapyKit.Pbkdf2Algorithm.yml\" sourcestartlinenumber=\"1\">Implements the PBKDF2 algorithm for password encryption.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.Pool-1.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.Pool-1.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.Pool<T>",
"Summary": "<p sourcefile=\"api/CapyKit.Pool-1.yml\" sourcestartlinenumber=\"1\">A managed pool of resources. This class provides a thread-safe way to manage a collection of\nobjects of type <code class=\"typeparamref\">T</code>.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.PoolItem-1.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.PoolItem-1.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.PoolItem<T>",
"Summary": "<p sourcefile=\"api/CapyKit.PoolItem-1.yml\" sourcestartlinenumber=\"1\">A pool item. This class cannot be inherited.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.PropertyComparer-2.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.PropertyComparer-2.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit.PropertyComparer<T, U>",
"Summary": "<p sourcefile=\"api/CapyKit.PropertyComparer-2.yml\" sourcestartlinenumber=\"1\">A object comparer that can accept a lambda expression to compare properties.</p>\n"
},
{
"type": "ManagedReference",
"source_relative_path": "api/CapyKit.yml",
"output": {
".html": {
"relative_path": "api/CapyKit.html"
}
},
"version": "",
"Uid": null,
"IsMRef": true,
"Title": "CapyKit",
"Summary": null
},
{
"type": "Toc",
"source_relative_path": "api/toc.yml",
"output": {
".html": {
"relative_path": "api/toc.html"
},
".json": {
"relative_path": "api/toc.json"
}
},
"version": ""
},
{
"type": "Conceptual",
"source_relative_path": "getting-started.md",
"output": {
".html": {
"relative_path": "getting-started.html"
}
},
"version": ""
},
{
"type": "Conceptual",
"source_relative_path": "index.md",
"output": {
".html": {
"relative_path": "index.html"
}
},
"version": ""
},
{
"type": "Conceptual",
"source_relative_path": "introduction.md",
"output": {
".html": {
"relative_path": "introduction.html"
}
},
"version": ""
},
{
"type": "Toc",
"source_relative_path": "toc.yml",
"output": {
".html": {
"relative_path": "toc.html"
},
".json": {
"relative_path": "toc.json"
}
},
"version": ""
}
],
"groups": [
{
"xrefmap": "xrefmap.yml"
}
]
}

View file

@ -0,0 +1,2 @@
import{a as e,b as r}from"./chunk-HC7FQI6W.min.js";import"./chunk-E24YF7OQ.min.js";import"./chunk-R5JLOOQ4.min.js";import"./chunk-PTL4EUOE.min.js";import"./chunk-E5F23VE2.min.js";import"./chunk-VBFLGJ4I.min.js";export{e as ArchitectureModule,r as createArchitectureServices};
//# sourceMappingURL=architecture-7HQA4BMR-HSKY6TUH.min.js.map

View file

@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
Docs/_site/public/chunk-2SNPQT3V.min.js vendored Executable file
View file

@ -0,0 +1,2 @@
import{b as t}from"./chunk-4TS2OR5T.min.js";var s=class{constructor(i){this.init=i,this.records=this.init()}static{t(this,"ImperativeState")}reset(){this.records=this.init()}};export{s as a};
//# sourceMappingURL=chunk-2SNPQT3V.min.js.map

View file

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QZHKN3VN.mjs"],
"sourcesContent": ["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/utils/imperativeState.ts\nvar ImperativeState = class {\n /**\n * @param init - Function that creates the default state.\n */\n constructor(init) {\n this.init = init;\n this.records = this.init();\n }\n static {\n __name(this, \"ImperativeState\");\n }\n reset() {\n this.records = this.init();\n }\n};\n\nexport {\n ImperativeState\n};\n"],
"mappings": "4CAKA,IAAIA,EAAkB,KAAM,CAI1B,YAAYC,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,QAAU,KAAK,KAAK,CAC3B,CACA,MAAO,CACLC,EAAO,KAAM,iBAAiB,CAChC,CACA,OAAQ,CACN,KAAK,QAAU,KAAK,KAAK,CAC3B,CACF",
"names": ["ImperativeState", "init", "__name"]
}

8
Docs/_site/public/chunk-3EXUMIIG.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

71
Docs/_site/public/chunk-3INE33PR.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

22
Docs/_site/public/chunk-3OUT3TPH.min.js vendored Executable file
View file

@ -0,0 +1,22 @@
import{b as k}from"./chunk-VBFLGJ4I.min.js";var v=k((h,j)=>{(function(e,n){typeof define=="function"&&define.amd?define(n):typeof h=="object"?j.exports=n():n()(e.lunr)})(h,function(){return function(e){if(typeof e>"u")throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(typeof e.stemmerSupport>"u")throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var n=e.version[0]=="2";e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),n?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var F=new e.TinySegmenter;e.ja.tokenizer=function(s){var t,i,f,o,a,d,g,p,r,c;if(!arguments.length||s==null||s==null)return[];if(Array.isArray(s))return s.map(function(m){return n?new e.Token(m.toLowerCase()):m.toLowerCase()});for(i=s.toString().toLowerCase().replace(/^\s+/,""),t=i.length-1;t>=0;t--)if(/\S/.test(i.charAt(t))){i=i.substring(0,t+1);break}for(a=[],f=i.length,r=0,p=0;r<=f;r++)if(d=i.charAt(r),g=r-p,d.match(/\s/)||r==f){if(g>0)for(o=F.segment(i.slice(p,r)).filter(function(m){return!!m}),c=p,t=0;t<o.length;t++)n?a.push(new e.Token(o[t],{position:[c,o[t].length],index:a.length})):a.push(o[t]),c+=o[t].length;p=r+1}return a},e.ja.stemmer=(function(){return function(s){return s}})(),e.Pipeline.registerFunction(e.ja.stemmer,"stemmer-ja"),e.ja.wordCharacters="\u4E00\u4E8C\u4E09\u56DB\u4E94\u516D\u4E03\u516B\u4E5D\u5341\u767E\u5343\u4E07\u5104\u5146\u4E00-\u9FA0\u3005\u3006\u30F5\u30F6\u3041-\u3093\u30A1-\u30F4\u30FC\uFF71-\uFF9D\uFF9Ea-zA-Z\uFF41-\uFF5A\uFF21-\uFF3A0-9\uFF10-\uFF19",e.ja.trimmer=e.trimmerSupport.generateTrimmer(e.ja.wordCharacters),e.Pipeline.registerFunction(e.ja.trimmer,"trimmer-ja"),e.ja.stopWordFilter=e.generateStopWordFilter("\u3053\u308C \u305D\u308C \u3042\u308C \u3053\u306E \u305D\u306E \u3042\u306E \u3053\u3053 \u305D\u3053 \u3042\u305D\u3053 \u3053\u3061\u3089 \u3069\u3053 \u3060\u308C \u306A\u306B \u306A\u3093 \u4F55 \u79C1 \u8CB4\u65B9 \u8CB4\u65B9\u65B9 \u6211\u3005 \u79C1\u9054 \u3042\u306E\u4EBA \u3042\u306E\u304B\u305F \u5F7C\u5973 \u5F7C \u3067\u3059 \u3042\u308A\u307E\u3059 \u304A\u308A\u307E\u3059 \u3044\u307E\u3059 \u306F \u304C \u306E \u306B \u3092 \u3067 \u3048 \u304B\u3089 \u307E\u3067 \u3088\u308A \u3082 \u3069\u306E \u3068 \u3057 \u305D\u308C\u3067 \u3057\u304B\u3057".split(" ")),e.Pipeline.registerFunction(e.ja.stopWordFilter,"stopWordFilter-ja"),e.jp=e.ja,e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.Pipeline.registerFunction(e.jp.trimmer,"trimmer-jp"),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}})});export{v as a};
/*! Bundled license information:
lunr-languages/lunr.ja.js:
(*!
* Lunr languages, `Japanese` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Chad Liu
* http://www.mozilla.org/MPL/
*)
(*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*)
*/
//# sourceMappingURL=chunk-3OUT3TPH.min.js.map

File diff suppressed because one or more lines are too long

3
Docs/_site/public/chunk-4S6YPXQK.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
Docs/_site/public/chunk-4TS2OR5T.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
Docs/_site/public/chunk-54TWZ5TY.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

221
Docs/_site/public/chunk-A6K5RA3E.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
Docs/_site/public/chunk-AJUMGIIP.min.js vendored Executable file
View file

@ -0,0 +1,2 @@
import{a as n,b as s,c as i,d as l,e as f,f as o,g as d,n as m,o as c,q as p}from"./chunk-E24YF7OQ.min.js";var u=class extends p{static{o(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},v=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,g=class extends c{static{o(this,"TreemapValueConverter")}runCustomConverter(r,e,t){if(r.name==="NUMBER2")return parseFloat(e.replace(/,/g,""));if(r.name==="SEPARATOR")return e.substring(1,e.length-1);if(r.name==="STRING2")return e.substring(1,e.length-1);if(r.name==="INDENTATION")return e.length;if(r.name==="ClassDef"){if(typeof e!="string")return e;let a=v.exec(e);if(a)return{$type:"ClassDefStatement",className:a[1],styleText:a[2]||void 0}}}};function T(r){let e=r.validation.TreemapValidator,t=r.validation.ValidationRegistry;if(t){let a={Treemap:e.checkSingleRoot.bind(e)};t.register(a,e)}}o(T,"registerValidationChecks");var h=class{static{o(this,"TreemapValidator")}checkSingleRoot(r,e){let t;for(let a of r.TreemapRows)a.item&&(t===void 0&&a.indent===void 0?t=0:a.indent===void 0?e("error","Multiple root nodes are not allowed in a treemap.",{node:a,property:"item"}):t!==void 0&&t>=parseInt(a.indent,10)&&e("error","Multiple root nodes are not allowed in a treemap.",{node:a,property:"item"}))}},C={parser:{TokenBuilder:o(()=>new u,"TokenBuilder"),ValueConverter:o(()=>new g,"ValueConverter")},validation:{TreemapValidator:o(()=>new h,"TreemapValidator")}};function V(r=l){let e=i(s(r),d),t=i(n({shared:e}),m,C);return e.ServiceRegistry.register(t),T(t),{shared:e,Treemap:t}}o(V,"createTreemapServices");export{C as a,V as b};
//# sourceMappingURL=chunk-AJUMGIIP.min.js.map

View file

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-B2363JML.mjs"],
"sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n MermaidGeneratedSharedModule,\n TreemapGrammarGeneratedModule,\n __name\n} from \"./chunk-TCCFYFTB.mjs\";\n\n// src/language/treemap/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/treemap/tokenBuilder.ts\nvar TreemapTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"TreemapTokenBuilder\");\n }\n constructor() {\n super([\"treemap\"]);\n }\n};\n\n// src/language/treemap/valueConverter.ts\nvar classDefRegex = /classDef\\s+([A-Z_a-z]\\w+)(?:\\s+([^\\n\\r;]*))?;?/;\nvar TreemapValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"TreemapValueConverter\");\n }\n runCustomConverter(rule, input, _cstNode) {\n if (rule.name === \"NUMBER2\") {\n return parseFloat(input.replace(/,/g, \"\"));\n } else if (rule.name === \"SEPARATOR\") {\n return input.substring(1, input.length - 1);\n } else if (rule.name === \"STRING2\") {\n return input.substring(1, input.length - 1);\n } else if (rule.name === \"INDENTATION\") {\n return input.length;\n } else if (rule.name === \"ClassDef\") {\n if (typeof input !== \"string\") {\n return input;\n }\n const match = classDefRegex.exec(input);\n if (match) {\n return {\n $type: \"ClassDefStatement\",\n className: match[1],\n styleText: match[2] || void 0\n };\n }\n }\n return void 0;\n }\n};\n\n// src/language/treemap/treemap-validator.ts\nfunction registerValidationChecks(services) {\n const validator = services.validation.TreemapValidator;\n const registry = services.validation.ValidationRegistry;\n if (registry) {\n const checks = {\n Treemap: validator.checkSingleRoot.bind(validator)\n // Remove unused validation for TreemapRow\n };\n registry.register(checks, validator);\n }\n}\n__name(registerValidationChecks, \"registerValidationChecks\");\nvar TreemapValidator = class {\n static {\n __name(this, \"TreemapValidator\");\n }\n /**\n * Validates that a treemap has only one root node.\n * A root node is defined as a node that has no indentation.\n */\n checkSingleRoot(doc, accept) {\n let rootNodeIndentation;\n for (const row of doc.TreemapRows) {\n if (!row.item) {\n continue;\n }\n if (rootNodeIndentation === void 0 && // Check if this is a root node (no indentation)\n row.indent === void 0) {\n rootNodeIndentation = 0;\n } else if (row.indent === void 0) {\n accept(\"error\", \"Multiple root nodes are not allowed in a treemap.\", {\n node: row,\n property: \"item\"\n });\n } else if (rootNodeIndentation !== void 0 && rootNodeIndentation >= parseInt(row.indent, 10)) {\n accept(\"error\", \"Multiple root nodes are not allowed in a treemap.\", {\n node: row,\n property: \"item\"\n });\n }\n }\n }\n};\n\n// src/language/treemap/module.ts\nvar TreemapModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new TreemapTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new TreemapValueConverter(), \"ValueConverter\")\n },\n validation: {\n TreemapValidator: /* @__PURE__ */ __name(() => new TreemapValidator(), \"TreemapValidator\")\n }\n};\nfunction createTreemapServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Treemap = inject(\n createDefaultCoreModule({ shared }),\n TreemapGrammarGeneratedModule,\n TreemapModule\n );\n shared.ServiceRegistry.register(Treemap);\n registerValidationChecks(Treemap);\n return { shared, Treemap };\n}\n__name(createTreemapServices, \"createTreemapServices\");\n\nexport {\n TreemapModule,\n createTreemapServices\n};\n"],
"mappings": "2GAiBA,IAAIA,EAAsB,cAAcC,CAA4B,CAClE,MAAO,CACLC,EAAO,KAAM,qBAAqB,CACpC,CACA,aAAc,CACZ,MAAM,CAAC,SAAS,CAAC,CACnB,CACF,EAGIC,EAAgB,iDAChBC,EAAwB,cAAcC,CAA8B,CACtE,MAAO,CACLH,EAAO,KAAM,uBAAuB,CACtC,CACA,mBAAmBI,EAAMC,EAAOC,EAAU,CACxC,GAAIF,EAAK,OAAS,UAChB,OAAO,WAAWC,EAAM,QAAQ,KAAM,EAAE,CAAC,EACpC,GAAID,EAAK,OAAS,YACvB,OAAOC,EAAM,UAAU,EAAGA,EAAM,OAAS,CAAC,EACrC,GAAID,EAAK,OAAS,UACvB,OAAOC,EAAM,UAAU,EAAGA,EAAM,OAAS,CAAC,EACrC,GAAID,EAAK,OAAS,cACvB,OAAOC,EAAM,OACR,GAAID,EAAK,OAAS,WAAY,CACnC,GAAI,OAAOC,GAAU,SACnB,OAAOA,EAET,IAAME,EAAQN,EAAc,KAAKI,CAAK,EACtC,GAAIE,EACF,MAAO,CACL,MAAO,oBACP,UAAWA,EAAM,CAAC,EAClB,UAAWA,EAAM,CAAC,GAAK,MACzB,CAEJ,CAEF,CACF,EAGA,SAASC,EAAyBC,EAAU,CAC1C,IAAMC,EAAYD,EAAS,WAAW,iBAChCE,EAAWF,EAAS,WAAW,mBACrC,GAAIE,EAAU,CACZ,IAAMC,EAAS,CACb,QAASF,EAAU,gBAAgB,KAAKA,CAAS,CAEnD,EACAC,EAAS,SAASC,EAAQF,CAAS,CACrC,CACF,CACAV,EAAOQ,EAA0B,0BAA0B,EAC3D,IAAIK,EAAmB,KAAM,CAC3B,MAAO,CACLb,EAAO,KAAM,kBAAkB,CACjC,CAKA,gBAAgBc,EAAKC,EAAQ,CAC3B,IAAIC,EACJ,QAAWC,KAAOH,EAAI,YACfG,EAAI,OAGLD,IAAwB,QAC5BC,EAAI,SAAW,OACbD,EAAsB,EACbC,EAAI,SAAW,OACxBF,EAAO,QAAS,oDAAqD,CACnE,KAAME,EACN,SAAU,MACZ,CAAC,EACQD,IAAwB,QAAUA,GAAuB,SAASC,EAAI,OAAQ,EAAE,GACzFF,EAAO,QAAS,oDAAqD,CACnE,KAAME,EACN,SAAU,MACZ,CAAC,EAGP,CACF,EAGIC,EAAgB,CAClB,OAAQ,CACN,aAA8BlB,EAAO,IAAM,IAAIF,EAAuB,cAAc,EACpF,eAAgCE,EAAO,IAAM,IAAIE,EAAyB,gBAAgB,CAC5F,EACA,WAAY,CACV,iBAAkCF,EAAO,IAAM,IAAIa,EAAoB,kBAAkB,CAC3F,CACF,EACA,SAASM,EAAsBC,EAAUC,EAAiB,CACxD,IAAMC,EAASC,EACbC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAAUH,EACdI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAV,CACF,EACA,OAAAI,EAAO,gBAAgB,SAASI,CAAO,EACvClB,EAAyBkB,CAAO,EACzB,CAAE,OAAAJ,EAAQ,QAAAI,CAAQ,CAC3B,CACA1B,EAAOmB,EAAuB,uBAAuB",
"names": ["TreemapTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "classDefRegex", "TreemapValueConverter", "AbstractMermaidValueConverter", "rule", "input", "_cstNode", "match", "registerValidationChecks", "services", "validator", "registry", "checks", "TreemapValidator", "doc", "accept", "rootNodeIndentation", "row", "TreemapModule", "createTreemapServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "Treemap", "createDefaultCoreModule", "TreemapGrammarGeneratedModule"]
}

160
Docs/_site/public/chunk-E24YF7OQ.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
Docs/_site/public/chunk-E5F23VE2.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
Docs/_site/public/chunk-EEHY3DYQ.min.js vendored Executable file
View file

@ -0,0 +1,2 @@
import{W as s}from"./chunk-ETRULKCA.min.js";import{b as n,j as e}from"./chunk-4TS2OR5T.min.js";var a=n(t=>{let{securityLevel:c}=s(),o=e("body");if(c==="sandbox"){let m=e(`#i${t}`).node()?.contentDocument??document;o=e(m.body)}return o.select(`#${t}`)},"selectSvgElement");export{a};
//# sourceMappingURL=chunk-EEHY3DYQ.min.js.map

View file

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.mjs"],
"sourcesContent": ["import {\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/selectSvgElement.ts\nimport { select } from \"d3\";\nvar selectSvgElement = /* @__PURE__ */ __name((id) => {\n const { securityLevel } = getConfig();\n let root = select(\"body\");\n if (securityLevel === \"sandbox\") {\n const sandboxElement = select(`#i${id}`);\n const doc = sandboxElement.node()?.contentDocument ?? document;\n root = select(doc.body);\n }\n const svg = root.select(`#${id}`);\n return svg;\n}, \"selectSvgElement\");\n\nexport {\n selectSvgElement\n};\n"],
"mappings": "+FASA,IAAIA,EAAmCC,EAAQC,GAAO,CACpD,GAAM,CAAE,cAAAC,CAAc,EAAIC,EAAU,EAChCC,EAAOC,EAAO,MAAM,EACxB,GAAIH,IAAkB,UAAW,CAE/B,IAAMI,EADiBD,EAAO,KAAKJ,CAAE,EAAE,EACZ,KAAK,GAAG,iBAAmB,SACtDG,EAAOC,EAAOC,EAAI,IAAI,CACxB,CAEA,OADYF,EAAK,OAAO,IAAIH,CAAE,EAAE,CAElC,EAAG,kBAAkB",
"names": ["selectSvgElement", "__name", "id", "securityLevel", "getConfig2", "root", "select_default", "doc"]
}

86
Docs/_site/public/chunk-ETRULKCA.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
Docs/_site/public/chunk-FMXZD665.min.js vendored Executable file
View file

@ -0,0 +1,2 @@
import{b as i}from"./chunk-4TS2OR5T.min.js";var o=i(({flowchart:t})=>{let r=t?.subGraphTitleMargin?.top??0,a=t?.subGraphTitleMargin?.bottom??0,e=r+a;return{subGraphTitleTopMargin:r,subGraphTitleBottomMargin:a,subGraphTitleTotalMargin:e}},"getSubGraphTitleMargins");export{o as a};
//# sourceMappingURL=chunk-FMXZD665.min.js.map

View file

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.mjs"],
"sourcesContent": ["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/utils/subGraphTitleMargins.ts\nvar getSubGraphTitleMargins = /* @__PURE__ */ __name(({\n flowchart\n}) => {\n const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;\n const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;\n const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;\n return {\n subGraphTitleTopMargin,\n subGraphTitleBottomMargin,\n subGraphTitleTotalMargin\n };\n}, \"getSubGraphTitleMargins\");\n\nexport {\n getSubGraphTitleMargins\n};\n"],
"mappings": "4CAKA,IAAIA,EAA0CC,EAAO,CAAC,CACpD,UAAAC,CACF,IAAM,CACJ,IAAMC,EAAyBD,GAAW,qBAAqB,KAAO,EAChEE,EAA4BF,GAAW,qBAAqB,QAAU,EACtEG,EAA2BF,EAAyBC,EAC1D,MAAO,CACL,uBAAAD,EACA,0BAAAC,EACA,yBAAAC,CACF,CACF,EAAG,yBAAyB",
"names": ["getSubGraphTitleMargins", "__name", "flowchart", "subGraphTitleTopMargin", "subGraphTitleBottomMargin", "subGraphTitleTotalMargin"]
}

2
Docs/_site/public/chunk-GK7N7244.min.js vendored Executable file
View file

@ -0,0 +1,2 @@
import{b as m}from"./chunk-VBFLGJ4I.min.js";var R=m(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0;e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im;e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g;e.htmlCtrlEntityRegex=/&(newline|tab);/gi;e.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;e.urlSchemeRegex=/^.+(:|&colon;)/gim;e.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;e.relativeFirstCharacters=[".","/"];e.BLANK_URL="about:blank"});var p=m(s=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});s.sanitizeUrl=void 0;var t=R();function d(r){return t.relativeFirstCharacters.indexOf(r[0])>-1}function v(r){var c=r.replace(t.ctrlCharactersRegex,"");return c.replace(t.htmlEntitiesRegex,function(a,i){return String.fromCharCode(i)})}function x(r){return URL.canParse(r)}function g(r){try{return decodeURIComponent(r)}catch{return r}}function C(r){if(!r)return t.BLANK_URL;var c,a=g(r.trim());do a=v(a).replace(t.htmlCtrlEntityRegex,"").replace(t.ctrlCharactersRegex,"").replace(t.whitespaceEscapeCharsRegex,"").trim(),a=g(a),c=a.match(t.ctrlCharactersRegex)||a.match(t.htmlEntitiesRegex)||a.match(t.htmlCtrlEntityRegex)||a.match(t.whitespaceEscapeCharsRegex);while(c&&c.length>0);var i=a;if(!i)return t.BLANK_URL;if(d(i))return i;var h=i.trimStart(),u=h.match(t.urlSchemeRegex);if(!u)return i;var n=u[0].toLowerCase().trim();if(t.invalidProtocolRegex.test(n))return t.BLANK_URL;var o=h.replace(/\\/g,"/");if(n==="mailto:"||n.includes("://"))return o;if(n==="http:"||n==="https:"){if(!x(o))return t.BLANK_URL;var l=new URL(o);return l.protocol=l.protocol.toLowerCase(),l.hostname=l.hostname.toLowerCase(),l.toString()}return o}s.sanitizeUrl=C});export{p as a};
//# sourceMappingURL=chunk-GK7N7244.min.js.map

View file

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/@braintree/sanitize-url/dist/constants.js", "../../node_modules/@braintree/sanitize-url/dist/index.js"],
"sourcesContent": ["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BLANK_URL = exports.relativeFirstCharacters = exports.whitespaceEscapeCharsRegex = exports.urlSchemeRegex = exports.ctrlCharactersRegex = exports.htmlCtrlEntityRegex = exports.htmlEntitiesRegex = exports.invalidProtocolRegex = void 0;\nexports.invalidProtocolRegex = /^([^\\w]*)(javascript|data|vbscript)/im;\nexports.htmlEntitiesRegex = /&#(\\w+)(^\\w|;)?/g;\nexports.htmlCtrlEntityRegex = /&(newline|tab);/gi;\nexports.ctrlCharactersRegex = /[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim;\nexports.urlSchemeRegex = /^.+(:|&colon;)/gim;\nexports.whitespaceEscapeCharsRegex = /(\\\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g;\nexports.relativeFirstCharacters = [\".\", \"/\"];\nexports.BLANK_URL = \"about:blank\";\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sanitizeUrl = void 0;\nvar constants_1 = require(\"./constants\");\nfunction isRelativeUrlWithoutProtocol(url) {\n return constants_1.relativeFirstCharacters.indexOf(url[0]) > -1;\n}\nfunction decodeHtmlCharacters(str) {\n var removedNullByte = str.replace(constants_1.ctrlCharactersRegex, \"\");\n return removedNullByte.replace(constants_1.htmlEntitiesRegex, function (match, dec) {\n return String.fromCharCode(dec);\n });\n}\nfunction isValidUrl(url) {\n return URL.canParse(url);\n}\nfunction decodeURI(uri) {\n try {\n return decodeURIComponent(uri);\n }\n catch (e) {\n // Ignoring error\n // It is possible that the URI contains a `%` not associated\n // with URI/URL-encoding.\n return uri;\n }\n}\nfunction sanitizeUrl(url) {\n if (!url) {\n return constants_1.BLANK_URL;\n }\n var charsToDecode;\n var decodedUrl = decodeURI(url.trim());\n do {\n decodedUrl = decodeHtmlCharacters(decodedUrl)\n .replace(constants_1.htmlCtrlEntityRegex, \"\")\n .replace(constants_1.ctrlCharactersRegex, \"\")\n .replace(constants_1.whitespaceEscapeCharsRegex, \"\")\n .trim();\n decodedUrl = decodeURI(decodedUrl);\n charsToDecode =\n decodedUrl.match(constants_1.ctrlCharactersRegex) ||\n decodedUrl.match(constants_1.htmlEntitiesRegex) ||\n decodedUrl.match(constants_1.htmlCtrlEntityRegex) ||\n decodedUrl.match(constants_1.whitespaceEscapeCharsRegex);\n } while (charsToDecode && charsToDecode.length > 0);\n var sanitizedUrl = decodedUrl;\n if (!sanitizedUrl) {\n return constants_1.BLANK_URL;\n }\n if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {\n return sanitizedUrl;\n }\n // Remove any leading whitespace before checking the URL scheme\n var trimmedUrl = sanitizedUrl.trimStart();\n var urlSchemeParseResults = trimmedUrl.match(constants_1.urlSchemeRegex);\n if (!urlSchemeParseResults) {\n return sanitizedUrl;\n }\n var urlScheme = urlSchemeParseResults[0].toLowerCase().trim();\n if (constants_1.invalidProtocolRegex.test(urlScheme)) {\n return constants_1.BLANK_URL;\n }\n var backSanitized = trimmedUrl.replace(/\\\\/g, \"/\");\n // Handle special cases for mailto: and custom deep-link protocols\n if (urlScheme === \"mailto:\" || urlScheme.includes(\"://\")) {\n return backSanitized;\n }\n // For http and https URLs, perform additional validation\n if (urlScheme === \"http:\" || urlScheme === \"https:\") {\n if (!isValidUrl(backSanitized)) {\n return constants_1.BLANK_URL;\n }\n var url_1 = new URL(backSanitized);\n url_1.protocol = url_1.protocol.toLowerCase();\n url_1.hostname = url_1.hostname.toLowerCase();\n return url_1.toString();\n }\n return backSanitized;\n}\nexports.sanitizeUrl = sanitizeUrl;\n"],
"mappings": "4CAAA,IAAAA,EAAAC,EAAAC,GAAA,cACA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,EAAQ,UAAYA,EAAQ,wBAA0BA,EAAQ,2BAA6BA,EAAQ,eAAiBA,EAAQ,oBAAsBA,EAAQ,oBAAsBA,EAAQ,kBAAoBA,EAAQ,qBAAuB,OAC3OA,EAAQ,qBAAuB,wCAC/BA,EAAQ,kBAAoB,mBAC5BA,EAAQ,oBAAsB,oBAC9BA,EAAQ,oBAAsB,qDAC9BA,EAAQ,eAAiB,oBACzBA,EAAQ,2BAA6B,uCACrCA,EAAQ,wBAA0B,CAAC,IAAK,GAAG,EAC3CA,EAAQ,UAAY,gBCVpB,IAAAC,EAAAC,EAAAC,GAAA,cACA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,EAAQ,YAAc,OACtB,IAAIC,EAAc,IAClB,SAASC,EAA6BC,EAAK,CACvC,OAAOF,EAAY,wBAAwB,QAAQE,EAAI,CAAC,CAAC,EAAI,EACjE,CACA,SAASC,EAAqBC,EAAK,CAC/B,IAAIC,EAAkBD,EAAI,QAAQJ,EAAY,oBAAqB,EAAE,EACrE,OAAOK,EAAgB,QAAQL,EAAY,kBAAmB,SAAUM,EAAOC,EAAK,CAChF,OAAO,OAAO,aAAaA,CAAG,CAClC,CAAC,CACL,CACA,SAASC,EAAWN,EAAK,CACrB,OAAO,IAAI,SAASA,CAAG,CAC3B,CACA,SAASO,EAAUC,EAAK,CACpB,GAAI,CACA,OAAO,mBAAmBA,CAAG,CACjC,MACU,CAIN,OAAOA,CACX,CACJ,CACA,SAASC,EAAYT,EAAK,CACtB,GAAI,CAACA,EACD,OAAOF,EAAY,UAEvB,IAAIY,EACAC,EAAaJ,EAAUP,EAAI,KAAK,CAAC,EACrC,GACIW,EAAaV,EAAqBU,CAAU,EACvC,QAAQb,EAAY,oBAAqB,EAAE,EAC3C,QAAQA,EAAY,oBAAqB,EAAE,EAC3C,QAAQA,EAAY,2BAA4B,EAAE,EAClD,KAAK,EACVa,EAAaJ,EAAUI,CAAU,EACjCD,EACIC,EAAW,MAAMb,EAAY,mBAAmB,GAC5Ca,EAAW,MAAMb,EAAY,iBAAiB,GAC9Ca,EAAW,MAAMb,EAAY,mBAAmB,GAChDa,EAAW,MAAMb,EAAY,0BAA0B,QAC1DY,GAAiBA,EAAc,OAAS,GACjD,IAAIE,EAAeD,EACnB,GAAI,CAACC,EACD,OAAOd,EAAY,UAEvB,GAAIC,EAA6Ba,CAAY,EACzC,OAAOA,EAGX,IAAIC,EAAaD,EAAa,UAAU,EACpCE,EAAwBD,EAAW,MAAMf,EAAY,cAAc,EACvE,GAAI,CAACgB,EACD,OAAOF,EAEX,IAAIG,EAAYD,EAAsB,CAAC,EAAE,YAAY,EAAE,KAAK,EAC5D,GAAIhB,EAAY,qBAAqB,KAAKiB,CAAS,EAC/C,OAAOjB,EAAY,UAEvB,IAAIkB,EAAgBH,EAAW,QAAQ,MAAO,GAAG,EAEjD,GAAIE,IAAc,WAAaA,EAAU,SAAS,KAAK,EACnD,OAAOC,EAGX,GAAID,IAAc,SAAWA,IAAc,SAAU,CACjD,GAAI,CAACT,EAAWU,CAAa,EACzB,OAAOlB,EAAY,UAEvB,IAAImB,EAAQ,IAAI,IAAID,CAAa,EACjC,OAAAC,EAAM,SAAWA,EAAM,SAAS,YAAY,EAC5CA,EAAM,SAAWA,EAAM,SAAS,YAAY,EACrCA,EAAM,SAAS,CAC1B,CACA,OAAOD,CACX,CACAnB,EAAQ,YAAcY",
"names": ["require_constants", "__commonJSMin", "exports", "require_dist", "__commonJSMin", "exports", "constants_1", "isRelativeUrlWithoutProtocol", "url", "decodeHtmlCharacters", "str", "removedNullByte", "match", "dec", "isValidUrl", "decodeURI", "uri", "sanitizeUrl", "charsToDecode", "decodedUrl", "sanitizedUrl", "trimmedUrl", "urlSchemeParseResults", "urlScheme", "backSanitized", "url_1"]
}

2
Docs/_site/public/chunk-HC7FQI6W.min.js vendored Executable file
View file

@ -0,0 +1,2 @@
import{a as i,b as u,c as a,d as n,e as m,f as r,g as o,h as s,o as l,q as d}from"./chunk-E24YF7OQ.min.js";var h=class extends d{static{r(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},A=class extends l{static{r(this,"ArchitectureValueConverter")}runCustomConverter(t,e,c){if(t.name==="ARCH_ICON")return e.replace(/[()]/g,"").trim();if(t.name==="ARCH_TEXT_ICON")return e.replace(/["()]/g,"");if(t.name==="ARCH_TITLE")return e.replace(/[[\]]/g,"").trim()}},C={parser:{TokenBuilder:r(()=>new h,"TokenBuilder"),ValueConverter:r(()=>new A,"ValueConverter")}};function v(t=n){let e=a(u(t),o),c=a(i({shared:e}),s,C);return e.ServiceRegistry.register(c),{shared:e,Architecture:c}}r(v,"createArchitectureServices");export{C as a,v as b};
//# sourceMappingURL=chunk-HC7FQI6W.min.js.map

View file

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-UMXZTB3W.mjs"],
"sourcesContent": ["import {\n AbstractMermaidTokenBuilder,\n AbstractMermaidValueConverter,\n ArchitectureGrammarGeneratedModule,\n MermaidGeneratedSharedModule,\n __name\n} from \"./chunk-TCCFYFTB.mjs\";\n\n// src/language/architecture/module.ts\nimport {\n EmptyFileSystem,\n createDefaultCoreModule,\n createDefaultSharedCoreModule,\n inject\n} from \"langium\";\n\n// src/language/architecture/tokenBuilder.ts\nvar ArchitectureTokenBuilder = class extends AbstractMermaidTokenBuilder {\n static {\n __name(this, \"ArchitectureTokenBuilder\");\n }\n constructor() {\n super([\"architecture\"]);\n }\n};\n\n// src/language/architecture/valueConverter.ts\nvar ArchitectureValueConverter = class extends AbstractMermaidValueConverter {\n static {\n __name(this, \"ArchitectureValueConverter\");\n }\n runCustomConverter(rule, input, _cstNode) {\n if (rule.name === \"ARCH_ICON\") {\n return input.replace(/[()]/g, \"\").trim();\n } else if (rule.name === \"ARCH_TEXT_ICON\") {\n return input.replace(/[\"()]/g, \"\");\n } else if (rule.name === \"ARCH_TITLE\") {\n return input.replace(/[[\\]]/g, \"\").trim();\n }\n return void 0;\n }\n};\n\n// src/language/architecture/module.ts\nvar ArchitectureModule = {\n parser: {\n TokenBuilder: /* @__PURE__ */ __name(() => new ArchitectureTokenBuilder(), \"TokenBuilder\"),\n ValueConverter: /* @__PURE__ */ __name(() => new ArchitectureValueConverter(), \"ValueConverter\")\n }\n};\nfunction createArchitectureServices(context = EmptyFileSystem) {\n const shared = inject(\n createDefaultSharedCoreModule(context),\n MermaidGeneratedSharedModule\n );\n const Architecture = inject(\n createDefaultCoreModule({ shared }),\n ArchitectureGrammarGeneratedModule,\n ArchitectureModule\n );\n shared.ServiceRegistry.register(Architecture);\n return { shared, Architecture };\n}\n__name(createArchitectureServices, \"createArchitectureServices\");\n\nexport {\n ArchitectureModule,\n createArchitectureServices\n};\n"],
"mappings": "2GAiBA,IAAIA,EAA2B,cAAcC,CAA4B,CACvE,MAAO,CACLC,EAAO,KAAM,0BAA0B,CACzC,CACA,aAAc,CACZ,MAAM,CAAC,cAAc,CAAC,CACxB,CACF,EAGIC,EAA6B,cAAcC,CAA8B,CAC3E,MAAO,CACLF,EAAO,KAAM,4BAA4B,CAC3C,CACA,mBAAmBG,EAAMC,EAAOC,EAAU,CACxC,GAAIF,EAAK,OAAS,YAChB,OAAOC,EAAM,QAAQ,QAAS,EAAE,EAAE,KAAK,EAClC,GAAID,EAAK,OAAS,iBACvB,OAAOC,EAAM,QAAQ,SAAU,EAAE,EAC5B,GAAID,EAAK,OAAS,aACvB,OAAOC,EAAM,QAAQ,SAAU,EAAE,EAAE,KAAK,CAG5C,CACF,EAGIE,EAAqB,CACvB,OAAQ,CACN,aAA8BN,EAAO,IAAM,IAAIF,EAA4B,cAAc,EACzF,eAAgCE,EAAO,IAAM,IAAIC,EAA8B,gBAAgB,CACjG,CACF,EACA,SAASM,EAA2BC,EAAUC,EAAiB,CAC7D,IAAMC,EAASC,EACbC,EAA8BJ,CAAO,EACrCK,CACF,EACMC,EAAeH,EACnBI,EAAwB,CAAE,OAAAL,CAAO,CAAC,EAClCM,EACAV,CACF,EACA,OAAAI,EAAO,gBAAgB,SAASI,CAAY,EACrC,CAAE,OAAAJ,EAAQ,aAAAI,CAAa,CAChC,CACAd,EAAOO,EAA4B,4BAA4B",
"names": ["ArchitectureTokenBuilder", "AbstractMermaidTokenBuilder", "__name", "ArchitectureValueConverter", "AbstractMermaidValueConverter", "rule", "input", "_cstNode", "ArchitectureModule", "createArchitectureServices", "context", "EmptyFileSystem", "shared", "inject", "createDefaultSharedCoreModule", "MermaidGeneratedSharedModule", "Architecture", "createDefaultCoreModule", "ArchitectureGrammarGeneratedModule"]
}

166
Docs/_site/public/chunk-JVHSDEBR.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
Docs/_site/public/chunk-LZQT2EPB.min.js vendored Executable file
View file

@ -0,0 +1,2 @@
import{b as x}from"./chunk-4TS2OR5T.min.js";var c={aggregation:17.25,extension:17.25,composition:17.25,dependency:6,lollipop:13.5,arrow_point:4},T={arrow_point:9,arrow_cross:12.5,arrow_circle:12.5};function w(n,l){if(n===void 0||l===void 0)return{angle:0,deltaX:0,deltaY:0};n=t(n),l=t(l);let[s,e]=[n.x,n.y],[a,i]=[l.x,l.y],o=a-s,y=i-e;return{angle:Math.atan(y/o),deltaX:o,deltaY:y}}x(w,"calculateDeltaAndAngle");var t=x(n=>Array.isArray(n)?{x:n[0],y:n[1]}:n,"pointTransformer"),M=x(n=>({x:x(function(l,s,e){let a=0,i=t(e[0]).x<t(e[e.length-1]).x?"left":"right";if(s===0&&Object.hasOwn(c,n.arrowTypeStart)){let{angle:r,deltaX:g}=w(e[0],e[1]);a=c[n.arrowTypeStart]*Math.cos(r)*(g>=0?1:-1)}else if(s===e.length-1&&Object.hasOwn(c,n.arrowTypeEnd)){let{angle:r,deltaX:g}=w(e[e.length-1],e[e.length-2]);a=c[n.arrowTypeEnd]*Math.cos(r)*(g>=0?1:-1)}let o=Math.abs(t(l).x-t(e[e.length-1]).x),y=Math.abs(t(l).y-t(e[e.length-1]).y),f=Math.abs(t(l).x-t(e[0]).x),d=Math.abs(t(l).y-t(e[0]).y),h=c[n.arrowTypeStart],u=c[n.arrowTypeEnd],p=1;if(o<u&&o>0&&y<u){let r=u+p-o;r*=i==="right"?-1:1,a-=r}if(f<h&&f>0&&d<h){let r=h+p-f;r*=i==="right"?-1:1,a+=r}return t(l).x+a},"x"),y:x(function(l,s,e){let a=0,i=t(e[0]).y<t(e[e.length-1]).y?"down":"up";if(s===0&&Object.hasOwn(c,n.arrowTypeStart)){let{angle:r,deltaY:g}=w(e[0],e[1]);a=c[n.arrowTypeStart]*Math.abs(Math.sin(r))*(g>=0?1:-1)}else if(s===e.length-1&&Object.hasOwn(c,n.arrowTypeEnd)){let{angle:r,deltaY:g}=w(e[e.length-1],e[e.length-2]);a=c[n.arrowTypeEnd]*Math.abs(Math.sin(r))*(g>=0?1:-1)}let o=Math.abs(t(l).y-t(e[e.length-1]).y),y=Math.abs(t(l).x-t(e[e.length-1]).x),f=Math.abs(t(l).y-t(e[0]).y),d=Math.abs(t(l).x-t(e[0]).x),h=c[n.arrowTypeStart],u=c[n.arrowTypeEnd],p=1;if(o<u&&o>0&&y<u){let r=u+p-o;r*=i==="up"?-1:1,a-=r}if(f<h&&f>0&&d<h){let r=h+p-f;r*=i==="up"?-1:1,a+=r}return t(l).y+a},"y")}),"getLineFunctionsWithOffset");export{c as a,T as b,M as c};
//# sourceMappingURL=chunk-LZQT2EPB.min.js.map

File diff suppressed because one or more lines are too long

2
Docs/_site/public/chunk-MHEKKGJI.min.js vendored Executable file
View file

@ -0,0 +1,2 @@
import{b as i}from"./chunk-4TS2OR5T.min.js";function t(c,e){c.accDescr&&e.setAccDescription?.(c.accDescr),c.accTitle&&e.setAccTitle?.(c.accTitle),c.title&&e.setDiagramTitle?.(c.title)}i(t,"populateCommonDb");export{t as a};
//# sourceMappingURL=chunk-MHEKKGJI.min.js.map

View file

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-4BX2VUAB.mjs"],
"sourcesContent": ["import {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/common/populateCommonDb.ts\nfunction populateCommonDb(ast, db) {\n if (ast.accDescr) {\n db.setAccDescription?.(ast.accDescr);\n }\n if (ast.accTitle) {\n db.setAccTitle?.(ast.accTitle);\n }\n if (ast.title) {\n db.setDiagramTitle?.(ast.title);\n }\n}\n__name(populateCommonDb, \"populateCommonDb\");\n\nexport {\n populateCommonDb\n};\n"],
"mappings": "4CAKA,SAASA,EAAiBC,EAAKC,EAAI,CAC7BD,EAAI,UACNC,EAAG,oBAAoBD,EAAI,QAAQ,EAEjCA,EAAI,UACNC,EAAG,cAAcD,EAAI,QAAQ,EAE3BA,EAAI,OACNC,EAAG,kBAAkBD,EAAI,KAAK,CAElC,CACAE,EAAOH,EAAkB,kBAAkB",
"names": ["populateCommonDb", "ast", "db", "__name"]
}

2
Docs/_site/public/chunk-N67HA43X.min.js vendored Executable file
View file

@ -0,0 +1,2 @@
import{W as c}from"./chunk-ETRULKCA.min.js";import{b as l}from"./chunk-4TS2OR5T.min.js";var m=l(t=>{let{handDrawnSeed:e}=c();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),h=l(t=>{let e=p([...t.cssCompiledStyles||[],...t.cssStyles||[],...t.labelStyle||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),p=l(t=>{let e=new Map;return t.forEach(o=>{let[a,r]=o.split(":");e.set(a.trim(),r?.trim())}),e},"styles2Map"),d=l(t=>t==="color"||t==="font-size"||t==="font-family"||t==="font-weight"||t==="font-style"||t==="text-decoration"||t==="text-align"||t==="text-transform"||t==="line-height"||t==="letter-spacing"||t==="word-spacing"||t==="text-shadow"||t==="text-overflow"||t==="white-space"||t==="word-wrap"||t==="word-break"||t==="overflow-wrap"||t==="hyphens","isLabelStyle"),S=l(t=>{let{stylesArray:e}=h(t),o=[],a=[],r=[],n=[];return e.forEach(s=>{let i=s[0];d(i)?o.push(s.join(":")+" !important"):(a.push(s.join(":")+" !important"),i.includes("stroke")&&r.push(s.join(":")+" !important"),i==="fill"&&n.push(s.join(":")+" !important"))}),{labelStyles:o.join(";"),nodeStyles:a.join(";"),stylesArray:e,borderStyles:r,backgroundStyles:n}},"styles2String"),w=l((t,e)=>{let{themeVariables:o,handDrawnSeed:a}=c(),{nodeBorder:r,mainBkg:n}=o,{stylesMap:s}=h(t);return Object.assign({roughness:.7,fill:s.get("fill")||n,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:s.get("stroke")||r,seed:a,strokeWidth:s.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:f(s.get("stroke-dasharray"))},e)},"userNodeOverrides"),f=l(t=>{if(!t)return[0,0];let e=t.trim().split(/\s+/).map(Number);if(e.length===1){let r=isNaN(e[0])?0:e[0];return[r,r]}let o=isNaN(e[0])?0:e[0],a=isNaN(e[1])?0:e[1];return[o,a]},"getStrokeDashArray");export{m as a,h as b,d as c,S as d,w as e};
//# sourceMappingURL=chunk-N67HA43X.min.js.map

View file

@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ATLVNIR6.mjs"],
"sourcesContent": ["import {\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts\nvar solidStateFill = /* @__PURE__ */ __name((color) => {\n const { handDrawnSeed } = getConfig();\n return {\n fill: color,\n hachureAngle: 120,\n // angle of hachure,\n hachureGap: 4,\n fillWeight: 2,\n roughness: 0.7,\n stroke: color,\n seed: handDrawnSeed\n };\n}, \"solidStateFill\");\nvar compileStyles = /* @__PURE__ */ __name((node) => {\n const stylesMap = styles2Map([\n ...node.cssCompiledStyles || [],\n ...node.cssStyles || [],\n ...node.labelStyle || []\n ]);\n return { stylesMap, stylesArray: [...stylesMap] };\n}, \"compileStyles\");\nvar styles2Map = /* @__PURE__ */ __name((styles) => {\n const styleMap = /* @__PURE__ */ new Map();\n styles.forEach((style) => {\n const [key, value] = style.split(\":\");\n styleMap.set(key.trim(), value?.trim());\n });\n return styleMap;\n}, \"styles2Map\");\nvar isLabelStyle = /* @__PURE__ */ __name((key) => {\n return key === \"color\" || key === \"font-size\" || key === \"font-family\" || key === \"font-weight\" || key === \"font-style\" || key === \"text-decoration\" || key === \"text-align\" || key === \"text-transform\" || key === \"line-height\" || key === \"letter-spacing\" || key === \"word-spacing\" || key === \"text-shadow\" || key === \"text-overflow\" || key === \"white-space\" || key === \"word-wrap\" || key === \"word-break\" || key === \"overflow-wrap\" || key === \"hyphens\";\n}, \"isLabelStyle\");\nvar styles2String = /* @__PURE__ */ __name((node) => {\n const { stylesArray } = compileStyles(node);\n const labelStyles = [];\n const nodeStyles = [];\n const borderStyles = [];\n const backgroundStyles = [];\n stylesArray.forEach((style) => {\n const key = style[0];\n if (isLabelStyle(key)) {\n labelStyles.push(style.join(\":\") + \" !important\");\n } else {\n nodeStyles.push(style.join(\":\") + \" !important\");\n if (key.includes(\"stroke\")) {\n borderStyles.push(style.join(\":\") + \" !important\");\n }\n if (key === \"fill\") {\n backgroundStyles.push(style.join(\":\") + \" !important\");\n }\n }\n });\n return {\n labelStyles: labelStyles.join(\";\"),\n nodeStyles: nodeStyles.join(\";\"),\n stylesArray,\n borderStyles,\n backgroundStyles\n };\n}, \"styles2String\");\nvar userNodeOverrides = /* @__PURE__ */ __name((node, options) => {\n const { themeVariables, handDrawnSeed } = getConfig();\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const result = Object.assign(\n {\n roughness: 0.7,\n fill: stylesMap.get(\"fill\") || mainBkg,\n fillStyle: \"hachure\",\n // solid fill\n fillWeight: 4,\n hachureGap: 5.2,\n stroke: stylesMap.get(\"stroke\") || nodeBorder,\n seed: handDrawnSeed,\n strokeWidth: stylesMap.get(\"stroke-width\")?.replace(\"px\", \"\") || 1.3,\n fillLineDash: [0, 0],\n strokeLineDash: getStrokeDashArray(stylesMap.get(\"stroke-dasharray\"))\n },\n options\n );\n return result;\n}, \"userNodeOverrides\");\nvar getStrokeDashArray = /* @__PURE__ */ __name((strokeDasharrayStyle) => {\n if (!strokeDasharrayStyle) {\n return [0, 0];\n }\n const dashArray = strokeDasharrayStyle.trim().split(/\\s+/).map(Number);\n if (dashArray.length === 1) {\n const val = isNaN(dashArray[0]) ? 0 : dashArray[0];\n return [val, val];\n }\n const first = isNaN(dashArray[0]) ? 0 : dashArray[0];\n const second = isNaN(dashArray[1]) ? 0 : dashArray[1];\n return [first, second];\n}, \"getStrokeDashArray\");\n\nexport {\n solidStateFill,\n compileStyles,\n isLabelStyle,\n styles2String,\n userNodeOverrides\n};\n"],
"mappings": "wFAQA,IAAIA,EAAiCC,EAAQC,GAAU,CACrD,GAAM,CAAE,cAAAC,CAAc,EAAIC,EAAU,EACpC,MAAO,CACL,KAAMF,EACN,aAAc,IAEd,WAAY,EACZ,WAAY,EACZ,UAAW,GACX,OAAQA,EACR,KAAMC,CACR,CACF,EAAG,gBAAgB,EACfE,EAAgCJ,EAAQK,GAAS,CACnD,IAAMC,EAAYC,EAAW,CAC3B,GAAGF,EAAK,mBAAqB,CAAC,EAC9B,GAAGA,EAAK,WAAa,CAAC,EACtB,GAAGA,EAAK,YAAc,CAAC,CACzB,CAAC,EACD,MAAO,CAAE,UAAAC,EAAW,YAAa,CAAC,GAAGA,CAAS,CAAE,CAClD,EAAG,eAAe,EACdC,EAA6BP,EAAQQ,GAAW,CAClD,IAAMC,EAA2B,IAAI,IACrC,OAAAD,EAAO,QAASE,GAAU,CACxB,GAAM,CAACC,EAAKC,CAAK,EAAIF,EAAM,MAAM,GAAG,EACpCD,EAAS,IAAIE,EAAI,KAAK,EAAGC,GAAO,KAAK,CAAC,CACxC,CAAC,EACMH,CACT,EAAG,YAAY,EACXI,EAA+Bb,EAAQW,GAClCA,IAAQ,SAAWA,IAAQ,aAAeA,IAAQ,eAAiBA,IAAQ,eAAiBA,IAAQ,cAAgBA,IAAQ,mBAAqBA,IAAQ,cAAgBA,IAAQ,kBAAoBA,IAAQ,eAAiBA,IAAQ,kBAAoBA,IAAQ,gBAAkBA,IAAQ,eAAiBA,IAAQ,iBAAmBA,IAAQ,eAAiBA,IAAQ,aAAeA,IAAQ,cAAgBA,IAAQ,iBAAmBA,IAAQ,UACzb,cAAc,EACbG,EAAgCd,EAAQK,GAAS,CACnD,GAAM,CAAE,YAAAU,CAAY,EAAIX,EAAcC,CAAI,EACpCW,EAAc,CAAC,EACfC,EAAa,CAAC,EACdC,EAAe,CAAC,EAChBC,EAAmB,CAAC,EAC1B,OAAAJ,EAAY,QAASL,GAAU,CAC7B,IAAMC,EAAMD,EAAM,CAAC,EACfG,EAAaF,CAAG,EAClBK,EAAY,KAAKN,EAAM,KAAK,GAAG,EAAI,aAAa,GAEhDO,EAAW,KAAKP,EAAM,KAAK,GAAG,EAAI,aAAa,EAC3CC,EAAI,SAAS,QAAQ,GACvBO,EAAa,KAAKR,EAAM,KAAK,GAAG,EAAI,aAAa,EAE/CC,IAAQ,QACVQ,EAAiB,KAAKT,EAAM,KAAK,GAAG,EAAI,aAAa,EAG3D,CAAC,EACM,CACL,YAAaM,EAAY,KAAK,GAAG,EACjC,WAAYC,EAAW,KAAK,GAAG,EAC/B,YAAAF,EACA,aAAAG,EACA,iBAAAC,CACF,CACF,EAAG,eAAe,EACdC,EAAoCpB,EAAO,CAACK,EAAMgB,IAAY,CAChE,GAAM,CAAE,eAAAC,EAAgB,cAAApB,CAAc,EAAIC,EAAU,EAC9C,CAAE,WAAAoB,EAAY,QAAAC,CAAQ,EAAIF,EAC1B,CAAE,UAAAhB,CAAU,EAAIF,EAAcC,CAAI,EAiBxC,OAhBe,OAAO,OACpB,CACE,UAAW,GACX,KAAMC,EAAU,IAAI,MAAM,GAAKkB,EAC/B,UAAW,UAEX,WAAY,EACZ,WAAY,IACZ,OAAQlB,EAAU,IAAI,QAAQ,GAAKiB,EACnC,KAAMrB,EACN,YAAaI,EAAU,IAAI,cAAc,GAAG,QAAQ,KAAM,EAAE,GAAK,IACjE,aAAc,CAAC,EAAG,CAAC,EACnB,eAAgBmB,EAAmBnB,EAAU,IAAI,kBAAkB,CAAC,CACtE,EACAe,CACF,CAEF,EAAG,mBAAmB,EAClBI,EAAqCzB,EAAQ0B,GAAyB,CACxE,GAAI,CAACA,EACH,MAAO,CAAC,EAAG,CAAC,EAEd,IAAMC,EAAYD,EAAqB,KAAK,EAAE,MAAM,KAAK,EAAE,IAAI,MAAM,EACrE,GAAIC,EAAU,SAAW,EAAG,CAC1B,IAAMC,EAAM,MAAMD,EAAU,CAAC,CAAC,EAAI,EAAIA,EAAU,CAAC,EACjD,MAAO,CAACC,EAAKA,CAAG,CAClB,CACA,IAAMC,EAAQ,MAAMF,EAAU,CAAC,CAAC,EAAI,EAAIA,EAAU,CAAC,EAC7CG,EAAS,MAAMH,EAAU,CAAC,CAAC,EAAI,EAAIA,EAAU,CAAC,EACpD,MAAO,CAACE,EAAOC,CAAM,CACvB,EAAG,oBAAoB",
"names": ["solidStateFill", "__name", "color", "handDrawnSeed", "getConfig2", "compileStyles", "node", "stylesMap", "styles2Map", "styles", "styleMap", "style", "key", "value", "isLabelStyle", "styles2String", "stylesArray", "labelStyles", "nodeStyles", "borderStyles", "backgroundStyles", "userNodeOverrides", "options", "themeVariables", "nodeBorder", "mainBkg", "getStrokeDashArray", "strokeDasharrayStyle", "dashArray", "val", "first", "second"]
}

Some files were not shown because too many files have changed in this diff Show more