         None =&gt; {
                let v = (self.calculation)(arg);
                self.value = Some(v);
                v
            },
        }
    }
}
<span class="boring">}</span></code></pre></pre>
<!--
<span class="caption">Listing 13-10: The caching logic of `Cacher`</span>
-->
<p><span class="caption">リスト13-10: <code>Cacher</code>のキャッシュ機構</span></p>
<!--
We want `Cacher` to manage the struct fields’ values rather than letting the
calling code potentially change the valu