Files
Sourcery/docs/enum-cases.html
T
2025-09-17 15:43:31 +02:00

292 lines
13 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<title>Enum cases Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
<script src="js/lunr.min.js" defer></script>
<script src="js/typeahead.jquery.js" defer></script>
<script src="js/jazzy.search.js" defer></script>
</head>
<body>
<a title="Enum cases Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">Sourcery 2.3.0 Docs</a> (100% documented)</p>
<p class="header-right"><a href="https://github.com/krzysztofzablocki/Sourcery"><img src="img/gh.png"/>View on GitHub</a></p>
<p class="header-right">
<form role="search" action="search.json">
<input type="text" placeholder="Search documentation" data-typeahead>
</form>
</p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">Sourcery Reference</a>
<img id="carat" src="img/carat.png" />
Enum cases Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Guides.html">Guides</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="installing.html">Installing</a>
</li>
<li class="nav-group-task">
<a href="usage.html">Usage</a>
</li>
<li class="nav-group-task">
<a href="writing-templates.html">Writing templates</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Examples.html">Examples</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="equatable.html">Equatable</a>
</li>
<li class="nav-group-task">
<a href="hashable.html">Hashable</a>
</li>
<li class="nav-group-task">
<a href="enum-cases.html">Enum cases</a>
</li>
<li class="nav-group-task">
<a href="lenses.html">Lenses</a>
</li>
<li class="nav-group-task">
<a href="mocks.html">Mocks</a>
</li>
<li class="nav-group-task">
<a href="codable.html">Codable</a>
</li>
<li class="nav-group-task">
<a href="Protocols/Diffable.html">Diffable</a>
</li>
<li class="nav-group-task">
<a href="diffable.html">Diffable</a>
</li>
<li class="nav-group-task">
<a href="linuxmain.html">LinuxMain</a>
</li>
<li class="nav-group-task">
<a href="decorator.html">Decorator</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Types.html">Types</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Types.html">Types</a>
</li>
<li class="nav-group-task">
<a href="Classes/Type.html">Type</a>
</li>
<li class="nav-group-task">
<a href="Classes/Protocol.html">Protocol</a>
</li>
<li class="nav-group-task">
<a href="Classes/Class.html">Class</a>
</li>
<li class="nav-group-task">
<a href="Classes/Struct.html">Struct</a>
</li>
<li class="nav-group-task">
<a href="Classes/Enum.html">Enum</a>
</li>
<li class="nav-group-task">
<a href="Classes/EnumCase.html">EnumCase</a>
</li>
<li class="nav-group-task">
<a href="Classes/AssociatedValue.html">AssociatedValue</a>
</li>
<li class="nav-group-task">
<a href="Classes/AssociatedType.html">AssociatedType</a>
</li>
<li class="nav-group-task">
<a href="Classes/Variable.html">Variable</a>
</li>
<li class="nav-group-task">
<a href="Classes/Method.html">Method</a>
</li>
<li class="nav-group-task">
<a href="Classes/MethodParameter.html">MethodParameter</a>
</li>
<li class="nav-group-task">
<a href="Classes/Subscript.html">Subscript</a>
</li>
<li class="nav-group-task">
<a href="Classes/TypeName.html">TypeName</a>
</li>
<li class="nav-group-task">
<a href="Classes/TupleType.html">TupleType</a>
</li>
<li class="nav-group-task">
<a href="Classes/TupleElement.html">TupleElement</a>
</li>
<li class="nav-group-task">
<a href="Classes/ArrayType.html">ArrayType</a>
</li>
<li class="nav-group-task">
<a href="Classes/DictionaryType.html">DictionaryType</a>
</li>
<li class="nav-group-task">
<a href="Classes/ClosureType.html">ClosureType</a>
</li>
<li class="nav-group-task">
<a href="Classes/GenericType.html">GenericType</a>
</li>
<li class="nav-group-task">
<a href="Classes/GenericTypeParameter.html">GenericTypeParameter</a>
</li>
<li class="nav-group-task">
<a href="Classes/Attribute.html">Attribute</a>
</li>
<li class="nav-group-task">
<a href="Classes/ProtocolComposition.html">ProtocolComposition</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Other%20Classes.html">Other Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/Actor.html">Actor</a>
</li>
<li class="nav-group-task">
<a href="Classes/ClosureParameter.html">ClosureParameter</a>
</li>
<li class="nav-group-task">
<a href="Classes/DiffableResult.html">DiffableResult</a>
</li>
<li class="nav-group-task">
<a href="Classes/GenericParameter.html">GenericParameter</a>
</li>
<li class="nav-group-task">
<a href="Classes/GenericRequirement.html">GenericRequirement</a>
</li>
<li class="nav-group-task">
<a href="Classes/GenericRequirement/Relationship.html"> Relationship</a>
</li>
<li class="nav-group-task">
<a href="Classes/Import.html">Import</a>
</li>
<li class="nav-group-task">
<a href="Classes/Modifier.html">Modifier</a>
</li>
<li class="nav-group-task">
<a href="Classes/SetType.html">SetType</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Other%20Enums.html">Other Enumerations</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/Composer.html">Composer</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Other%20Extensions.html">Other Extensions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Extensions/Array.html">Array</a>
</li>
<li class="nav-group-task">
<a href="Other%20Extensions.html#/c:@M@SourceryRuntime@objc(cs)BytesRange">BytesRange</a>
</li>
<li class="nav-group-task">
<a href="Other%20Extensions.html#/c:@M@SourceryRuntime@objc(cs)FileParserResult">FileParserResult</a>
</li>
<li class="nav-group-task">
<a href="Extensions/String.html">String</a>
</li>
<li class="nav-group-task">
<a href="Extensions/StringProtocol.html">StringProtocol</a>
</li>
<li class="nav-group-task">
<a href="Extensions/Typealias.html">Typealias</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Other%20Protocols.html">Other Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/Annotated.html">Annotated</a>
</li>
<li class="nav-group-task">
<a href="Protocols/Definition.html">Definition</a>
</li>
<li class="nav-group-task">
<a href="Protocols/Documented.html">Documented</a>
</li>
<li class="nav-group-task">
<a href="Protocols/Typed.html">Typed</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Other%20Typealiases.html">Other Type Aliases</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Other%20Typealiases.html#/s:15SourceryRuntime11Annotationsa">Annotations</a>
</li>
<li class="nav-group-task">
<a href="Other%20Typealiases.html#/s:15SourceryRuntime13Documentationa">Documentation</a>
</li>
<li class="nav-group-task">
<a href="Other%20Typealiases.html#/s:15SourceryRuntime0A8Modifiera">SourceryModifier</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h2 id='i-want-to-list-all-cases-in-an-enum' class='heading'>I want to list all cases in an enum</h2>
<p>Generate <code>count</code> and <code>allCases</code> for any enumeration that is marked with <code>AutoCases</code> phantom protocol.</p>
<h3 id='a-href-https-github-com-krzysztofzablocki-sourcery-blob-master-templates-templates-autocases-stencil-stencil-template-a' class='heading'><a href="https://github.com/krzysztofzablocki/Sourcery/blob/master/Templates/Templates/AutoCases.stencil">Stencil Template</a></h3>
<h4 id='example-output' class='heading'>Example output:</h4>
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">BetaSettingsGroup</span> <span class="p">{</span>
<span class="kd">static</span> <span class="k">let</span> <span class="nv">count</span><span class="p">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="k">return</span> <span class="mi">8</span>
<span class="kd">static</span> <span class="k">let</span> <span class="nv">allCases</span><span class="p">:</span> <span class="p">[</span><span class="kt">BetaSettingsGroup</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span>
<span class="o">.</span><span class="n">featuresInDevelopment</span><span class="p">,</span>
<span class="o">.</span><span class="n">advertising</span><span class="p">,</span>
<span class="o">.</span><span class="n">analytics</span><span class="p">,</span>
<span class="o">.</span><span class="n">marketing</span><span class="p">,</span>
<span class="o">.</span><span class="n">news</span><span class="p">,</span>
<span class="o">.</span><span class="n">notifications</span><span class="p">,</span>
<span class="o">.</span><span class="n">tech</span><span class="p">,</span>
<span class="o">.</span><span class="n">appInformation</span>
<span class="p">]</span>
<span class="p">}</span>
</code></pre>
</section>
</section>
<section id="footer">
<p>Copyright © 2016-2021 Pixle. All rights reserved.</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="noopener" rel="external">jazzy ♪♫ v0.14.0</a>, a <a class="link" href="https://realm.io" target="_blank" rel="noopener" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</html>