157 lines
8.0 KiB
HTML
157 lines
8.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<title>ElementValidation Protocol 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>
|
|
|
|
</head>
|
|
<body>
|
|
<a name="//apple_ref/swift/Protocol/ElementValidation" class="dashAnchor"></a>
|
|
<a title="ElementValidation Protocol Reference"></a>
|
|
<header>
|
|
<div class="content-wrapper">
|
|
<p><a href="../index.html"> Docs</a> (98% documented)</p>
|
|
</div>
|
|
</header>
|
|
<div class="content-wrapper">
|
|
<p id="breadcrumbs">
|
|
<a href="../index.html"> Reference</a>
|
|
<img id="carat" src="../img/carat.png" />
|
|
ElementValidation Protocol Reference
|
|
</p>
|
|
</div>
|
|
<div class="content-wrapper">
|
|
<nav class="sidebar">
|
|
<ul class="nav-groups">
|
|
<li class="nav-group-name">
|
|
<a href="../Extensions.html">Extensions</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a href="../Extensions/CustomStringConvertible.html">CustomStringConvertible</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-group-name">
|
|
<a href="../Functions.html">Functions</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a href="../Functions.html#/s:10Validation2ltoiyyAA8FailableVyxq_Gz_xtK9SupportedQy_RszA2AR_r0_lF"><~(_:_:)</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a href="../Functions.html#/s:10Validation2eeoiySbAA8FailableVyxq_G_ADyxq0_GtSQRz9SupportedQy_RszA2AR_A2AR0_AGQy0_AHRSr1_lF">==(_:_:)</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-group-name">
|
|
<a href="../Protocols.html">Protocols</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a href="../Protocols/AnyValidation.html">AnyValidation</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a href="../Protocols/ElementValidation.html">ElementValidation</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a href="../Protocols/InRangeValidation.html">InRangeValidation</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a href="../Protocols/LengthValidation.html">LengthValidation</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a href="../Protocols/RegexValidation.html">RegexValidation</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a href="../Protocols/Validation.html">Validation</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li class="nav-group-name">
|
|
<a href="../Structs.html">Structures</a>
|
|
<ul class="nav-group-tasks">
|
|
<li class="nav-group-task">
|
|
<a href="../Structs/Failable.html">Failable</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a href="../Structs/NotNil.html">NotNil</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a href="../Structs/NotNilValidate.html">NotNilValidate</a>
|
|
</li>
|
|
<li class="nav-group-task">
|
|
<a href="../Structs/ValidationError.html">ValidationError</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</nav>
|
|
<article class="main-content">
|
|
<section>
|
|
<section class="section">
|
|
<h1>ElementValidation</h1>
|
|
<div class="declaration">
|
|
<div class="language">
|
|
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">ElementValidation</span><span class="p">:</span> <span class="kt"><a href="../Protocols/Validation.html">Validation</a></span> <span class="k">where</span> <span class="kt">Supported</span><span class="p">:</span> <span class="kt">Sequence</span></code></pre>
|
|
|
|
</div>
|
|
</div>
|
|
<p>Validates each element in a sequence using a custom validation function.</p>
|
|
<pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">StringLengthArray</span><span class="p">:</span> <span class="kt">ElementValidation</span> <span class="p">{</span>
|
|
<span class="kd">typealias</span> <span class="kt">Supported</span> <span class="o">=</span> <span class="p">[</span><span class="kt">String</span><span class="p">]</span>
|
|
|
|
<span class="kd">static</span> <span class="k">var</span> <span class="nv">validator</span><span class="p">:</span> <span class="p">(</span><span class="kt">String</span><span class="p">)</span><span class="k">throws</span> <span class="o">-></span> <span class="kt">Void</span> <span class="o">=</span> <span class="p">{</span> <span class="n">str</span> <span class="k">in</span>
|
|
<span class="k">guard</span> <span class="n">str</span><span class="o">.</span><span class="n">count</span> <span class="o"><=</span> <span class="mi">1028</span> <span class="k">else</span> <span class="p">{</span> <span class="k">throw</span> <span class="kt">ValidationError</span><span class="p">(</span><span class="nv">identifier</span><span class="p">:</span> <span class="s">"lengthToLong"</span><span class="p">,</span> <span class="nv">reason</span><span class="p">:</span> <span class="s">"String must have length 1028 or less"</span><span class="p">)</span> <span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
</code></pre>
|
|
|
|
<p>The <code>validate</code> method calls <code>.forEach</code> on the value passed in and passes the <code>validator</code> function in as the closure.</p>
|
|
|
|
</section>
|
|
<section class="section task-group-section">
|
|
<div class="task-group">
|
|
<ul>
|
|
<li class="item">
|
|
<div>
|
|
<code>
|
|
<a name="/s:10Validation07ElementA0P9validatoryy9Supported_0B0QZKcvpZ"></a>
|
|
<a name="//apple_ref/swift/Variable/validator" class="dashAnchor"></a>
|
|
<a class="token" href="#/s:10Validation07ElementA0P9validatoryy9Supported_0B0QZKcvpZ">validator</a>
|
|
</code>
|
|
</div>
|
|
<div class="height-container">
|
|
<div class="pointer-container"></div>
|
|
<section class="section">
|
|
<div class="pointer"></div>
|
|
<div class="abstract">
|
|
<p>The function used to validate each element in the sequence.</p>
|
|
|
|
</div>
|
|
<div class="declaration">
|
|
<h4>Declaration</h4>
|
|
<div class="language">
|
|
<p class="aside-title">Swift</p>
|
|
<pre class="highlight swift"><code><span class="kd">static</span> <span class="k">var</span> <span class="nv">validator</span><span class="p">:</span> <span class="p">(</span><span class="kt">Supported</span><span class="o">.</span><span class="kt">Element</span><span class="p">)</span><span class="k">throws</span> <span class="o">-></span> <span class="kt">Void</span></code></pre>
|
|
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</section>
|
|
</section>
|
|
<section id="footer">
|
|
<p>© 2018 <a class="link" href="" target="_blank" rel="external"></a>. All rights reserved. (Last updated: 2018-11-28)</p>
|
|
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.1</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
|
|
</section>
|
|
</article>
|
|
</div>
|
|
</body>
|
|
</div>
|
|
</html>
|