libcosmic/cosmic/cosmic_theme/palette/stimulus/trait.Stimulus.html
2026-04-18 20:11:25 +00:00

30 lines
No EOL
13 KiB
HTML

<!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="Color components that represent a stimulus intensity."><title>Stimulus in cosmic::cosmic_theme::palette::stimulus - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-aa0817cf.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="cosmic" data-themes="" data-resource-suffix="" data-rustdoc-version="1.90.0-nightly (3048886e5 2025-07-30)" data-channel="nightly" data-search-js="search-fa3e91e5.js" data-settings-js="settings-5514c975.js" ><script src="../../../../static.files/storage-68b7e25d.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-eebb9057.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-32bb7600.css"></noscript><link rel="alternate icon" type="image/png" href="../../../../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../../../../static.files/favicon-044be391.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" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../cosmic/index.html">cosmic</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Stimulus</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.max_intensity" title="max_intensity">max_intensity</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-Stimulus-for-u8" title="u8">u8</a></li><li><a href="#impl-Stimulus-for-u16" title="u16">u16</a></li><li><a href="#impl-Stimulus-for-u32" title="u32">u32</a></li><li><a href="#impl-Stimulus-for-u64" title="u64">u64</a></li><li><a href="#impl-Stimulus-for-u128" title="u128">u128</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In cosmic::<wbr>cosmic_<wbr>theme::<wbr>palette::<wbr>stimulus</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">cosmic</a>::<wbr><a href="../../index.html">cosmic_theme</a>::<wbr><a href="../index.html">palette</a>::<wbr><a href="index.html">stimulus</a></div><h1>Trait <span class="trait">Stimulus</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#29">Source</a> </span></div><pre class="rust item-decl"><code>pub trait Stimulus: <a class="trait" href="../num/trait.Zero.html" title="trait cosmic::cosmic_theme::palette::num::Zero">Zero</a> {
// Required method
fn <a href="#tymethod.max_intensity" class="fn">max_intensity</a>() -&gt; Self;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Color components that represent a stimulus intensity.</p>
<p>The term “stimulus” comes from “tristimulus”, literally a set of three
stimuli, which is a term for color spaces that measure the intensity of
three primary color values. Classic examples of tristimulus color space are
XYZ and RGB.</p>
<p>Stimulus values are expected to have these properties:</p>
<ul>
<li>Has a typical range from <code>0</code> to some finite maximum, the “max intensity”.
This represents a range from <code>0%</code> to <code>100%</code>. For example <code>0u8</code> to
<code>255u8</code>, <code>0.0f32</code> to <code>1.0f32</code>.</li>
<li>Values below <code>0</code> are considered invalid for display purposes, but may
still be used in calculations.</li>
<li>Values above the “max intensity” are sometimes supported, depending on
the application. For example in 3D rendering, where high values represent
intense light.</li>
<li>Unsigned integer values (<code>u8</code>, <code>u16</code>, <code>u32</code>, etc.) have a range from <code>0</code>
to their largest representable value. For example <code>0u8</code> to <code>255u8</code> or
<code>0u16</code> to <code>65535u16</code>.</li>
<li>Real values (<code>f32</code>, <code>f64</code>, fixed point types, etc.) have a range from
<code>0.0</code> to <code>1.0</code>.</li>
</ul>
</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.max_intensity" class="method"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#35">Source</a><h4 class="code-header">fn <a href="#tymethod.max_intensity" class="fn">max_intensity</a>() -&gt; Self</h4></section></summary><div class="docblock"><p>The highest displayable value this component type can reach. Integers
types are expected to return their maximum value, while real numbers
(like floats) return 1.0. Higher values are allowed, but they may be
lowered to this before converting to another format.</p>
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/nightly/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Stimulus-for-u8" class="impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#61">Source</a><a href="#impl-Stimulus-for-u8" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Stimulus.html" title="trait cosmic::cosmic_theme::palette::stimulus::Stimulus">Stimulus</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a></h3></section></summary><div class="impl-items"><section id="method.max_intensity" class="method trait-impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#61">Source</a><a href="#method.max_intensity" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.max_intensity" class="fn">max_intensity</a>() -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Stimulus-for-u16" class="impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#61">Source</a><a href="#impl-Stimulus-for-u16" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Stimulus.html" title="trait cosmic::cosmic_theme::palette::stimulus::Stimulus">Stimulus</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a></h3></section></summary><div class="impl-items"><section id="method.max_intensity-1" class="method trait-impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#61">Source</a><a href="#method.max_intensity-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.max_intensity" class="fn">max_intensity</a>() -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Stimulus-for-u32" class="impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#61">Source</a><a href="#impl-Stimulus-for-u32" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Stimulus.html" title="trait cosmic::cosmic_theme::palette::stimulus::Stimulus">Stimulus</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></h3></section></summary><div class="impl-items"><section id="method.max_intensity-2" class="method trait-impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#61">Source</a><a href="#method.max_intensity-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.max_intensity" class="fn">max_intensity</a>() -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Stimulus-for-u64" class="impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#61">Source</a><a href="#impl-Stimulus-for-u64" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Stimulus.html" title="trait cosmic::cosmic_theme::palette::stimulus::Stimulus">Stimulus</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h3></section></summary><div class="impl-items"><section id="method.max_intensity-3" class="method trait-impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#61">Source</a><a href="#method.max_intensity-3" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.max_intensity" class="fn">max_intensity</a>() -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Stimulus-for-u128" class="impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#61">Source</a><a href="#impl-Stimulus-for-u128" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Stimulus.html" title="trait cosmic::cosmic_theme::palette::stimulus::Stimulus">Stimulus</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u128.html">u128</a></h3></section></summary><div class="impl-items"><section id="method.max_intensity-4" class="method trait-impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#61">Source</a><a href="#method.max_intensity-4" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.max_intensity" class="fn">max_intensity</a>() -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u128.html">u128</a></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Stimulus-for-T" class="impl"><a class="src rightside" href="https://docs.rs/palette/0.7.6/src/palette/stimulus.rs.html#38-40">Source</a><a href="#impl-Stimulus-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.Stimulus.html" title="trait cosmic::cosmic_theme::palette::stimulus::Stimulus">Stimulus</a> for T<div class="where">where
T: <a class="trait" href="../num/trait.Real.html" title="trait cosmic::cosmic_theme::palette::num::Real">Real</a> + <a class="trait" href="../num/trait.One.html" title="trait cosmic::cosmic_theme::palette::num::One">One</a> + <a class="trait" href="../num/trait.Zero.html" title="trait cosmic::cosmic_theme::palette::num::Zero">Zero</a>,</div></h3></section></div><script src="../../../../trait.impl/palette/stimulus/trait.Stimulus.js" data-ignore-extern-crates="std" async></script></section></div></main></body></html>