Files
google-apis-rs/chrono/trait.SubsecRound.html
2024-03-05 21:06:01 +01:00

26 lines
9.6 KiB
HTML
Raw 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><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Extension trait for subsecond rounding or truncation to a maximum number of digits. Rounding can be used to decrease the error variance when serializing/persisting to lower precision. Truncation is the default behavior in Chrono display formatting. Either can be used to guarantee equality (e.g. for testing) when round-tripping through a lower precision format."><title>SubsecRound in chrono - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-ac92e1bbe349e143.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="chrono" data-themes="" data-resource-suffix="" data-rustdoc-version="1.76.0 (07dca489a 2024-02-04)" data-channel="1.76.0" data-search-js="search-2b6ce74ff89ae146.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-f2adc0d6ca4d09fb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-305769736d49e732.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-feafe1bb7466e4bd.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../chrono/index.html">chrono</a><span class="version">0.4.31</span></h2></div><h2 class="location"><a href="#">SubsecRound</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.round_subsecs">round_subsecs</a></li><li><a href="#tymethod.trunc_subsecs">trunc_subsecs</a></li></ul><h3><a href="#object-safety">Object Safety</a></h3><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In crate chrono</a></h2></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../chrono/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Trait <a href="index.html">chrono</a>::<wbr><a class="trait" href="#">SubsecRound</a><button id="copy-path" title="Copy item path to clipboard"><img src="../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../src/chrono/round.rs.html#20-45">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub trait SubsecRound {
// Required methods
fn <a href="#tymethod.round_subsecs" class="fn">round_subsecs</a>(self, digits: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.u16.html">u16</a>) -&gt; Self;
<span class="item-spacer"></span> fn <a href="#tymethod.trunc_subsecs" class="fn">trunc_subsecs</a>(self, digits: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.u16.html">u16</a>) -&gt; Self;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Extension trait for subsecond rounding or truncation to a maximum number
of digits. Rounding can be used to decrease the error variance when
serializing/persisting to lower precision. Truncation is the default
behavior in Chrono display formatting. Either can be used to guarantee
equality (e.g. for testing) when round-tripping through a lower precision
format.</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.round_subsecs" class="method"><a class="src rightside" href="../src/chrono/round.rs.html#32">source</a><h4 class="code-header">fn <a href="#tymethod.round_subsecs" class="fn">round_subsecs</a>(self, digits: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.u16.html">u16</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Return a copy rounded to the specified number of subsecond digits. With
9 or more digits, self is returned unmodified. Halfway values are
rounded up (away from zero).</p>
<h5 id="example"><a href="#example">Example</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>dt = NaiveDate::from_ymd_opt(<span class="number">2018</span>, <span class="number">1</span>, <span class="number">11</span>).unwrap().and_hms_milli_opt(<span class="number">12</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">154</span>).unwrap().and_local_timezone(Utc).unwrap();
<span class="macro">assert_eq!</span>(dt.round_subsecs(<span class="number">2</span>).nanosecond(), <span class="number">150_000_000</span>);
<span class="macro">assert_eq!</span>(dt.round_subsecs(<span class="number">1</span>).nanosecond(), <span class="number">200_000_000</span>);</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.trunc_subsecs" class="method"><a class="src rightside" href="../src/chrono/round.rs.html#44">source</a><h4 class="code-header">fn <a href="#tymethod.trunc_subsecs" class="fn">trunc_subsecs</a>(self, digits: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.u16.html">u16</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Return a copy truncated to the specified number of subsecond
digits. With 9 or more digits, self is returned unmodified.</p>
<h5 id="example-1"><a href="#example-1">Example</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>dt = NaiveDate::from_ymd_opt(<span class="number">2018</span>, <span class="number">1</span>, <span class="number">11</span>).unwrap().and_hms_milli_opt(<span class="number">12</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">154</span>).unwrap().and_local_timezone(Utc).unwrap();
<span class="macro">assert_eq!</span>(dt.trunc_subsecs(<span class="number">2</span>).nanosecond(), <span class="number">150_000_000</span>);
<span class="macro">assert_eq!</span>(dt.trunc_subsecs(<span class="number">1</span>).nanosecond(), <span class="number">100_000_000</span>);</code></pre></div>
</div></details></div><h2 id="object-safety" class="section-header">Object Safety<a href="#object-safety" class="anchor">§</a></h2><div class="object-safety-info">This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.76.0/reference/items/traits.html#object-safety">object safe</a>.</div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-SubsecRound-for-T" class="impl"><a class="src rightside" href="../src/chrono/round.rs.html#47-75">source</a><a href="#impl-SubsecRound-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.SubsecRound.html" title="trait chrono::SubsecRound">SubsecRound</a> for T<div class="where">where
T: <a class="trait" href="trait.Timelike.html" title="trait chrono::Timelike">Timelike</a> + <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/ops/arith/trait.Add.html" title="trait core::ops::arith::Add">Add</a>&lt;<a class="struct" href="struct.Duration.html" title="struct chrono::Duration">Duration</a>, Output = T&gt; + <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/ops/arith/trait.Sub.html" title="trait core::ops::arith::Sub">Sub</a>&lt;<a class="struct" href="struct.Duration.html" title="struct chrono::Duration">Duration</a>, Output = T&gt;,</div></h3></section></div><script src="../trait.impl/chrono/round/trait.SubsecRound.js" async></script></section></div></main></body></html>