freya_core/values/
sampling.rs1use std::fmt;
2
3use crate::parsing::{
4 Parse,
5 ParseError,
6};
7
8#[derive(Clone, Debug, PartialEq, Default)]
9pub enum SamplingMode {
10 #[default]
11 Nearest,
12 Bilinear,
13 Trilinear,
14 Mitchell,
15 CatmullRom,
16}
17
18impl Parse for SamplingMode {
19 fn parse(value: &str) -> Result<Self, ParseError> {
20 Ok(match value {
21 "bilinear" => SamplingMode::Bilinear,
22 "trilinear" => SamplingMode::Trilinear,
23 "mitchell" => SamplingMode::Mitchell,
24 "catmull-rom" => SamplingMode::CatmullRom,
25 _ => SamplingMode::Nearest,
26 })
27 }
28}
29
30impl fmt::Display for SamplingMode {
31 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
32 f.write_str(match self {
33 SamplingMode::Nearest => "nearest",
34 SamplingMode::Bilinear => "bilinear",
35 SamplingMode::Trilinear => "trilinear",
36 SamplingMode::Mitchell => "mitchell",
37 SamplingMode::CatmullRom => "catmull-rom",
38 })
39 }
40}