use ordered_float::OrderedFloat; use serde::{Serialize, Deserialize}; #[derive(Debug, Clone, PartialOrd, Ord, PartialEq, Eq, Hash)] #[derive(Serialize, Deserialize)] pub enum FacetValue { String(String), Float(OrderedFloat), Integer(i64), } impl From for FacetValue { fn from(string: String) -> FacetValue { FacetValue::String(string) } } impl From<&str> for FacetValue { fn from(string: &str) -> FacetValue { FacetValue::String(string.to_owned()) } } impl From for FacetValue { fn from(float: f64) -> FacetValue { FacetValue::Float(OrderedFloat(float)) } } impl From> for FacetValue { fn from(float: OrderedFloat) -> FacetValue { FacetValue::Float(float) } } impl From for FacetValue { fn from(integer: i64) -> FacetValue { FacetValue::Integer(integer) } }