// codesnip-guard: TotalOrd #[cfg_attr(any(),rustfmt::skip)]pub use self::totalord::{AsTotalOrd,TotalOrd};#[cfg_attr(any(),rustfmt::skip)]mod totalord{use std::{cmp::Ordering,hash::{Hash,Hasher}};#[derive(Debug,Clone,Copy,Default)]#[doc=" implement Ord by PartialOrd"]#[doc=""]#[doc=" # Example"]#[doc=""]#[doc=" ```"]#[doc=" # use competitive::tools::TotalOrd;"]#[doc=" let mut a = vec![3.1, 4.1, 5.9, 2.6];"]#[doc=" a.sort_by_key(|&x| TotalOrd(x));"]#[doc=" ```"]#[doc=""]pub struct TotalOrd(pub T);implPartialEq for TotalOrdwhere T:PartialEq{fn eq(&self,other:&Self)->bool{self.0==other.0}}implEq for TotalOrdwhere T:PartialEq{}implPartialOrd for TotalOrdwhere T:PartialOrd{fn partial_cmp(&self,other:&TotalOrd)->Option{Some(self.cmp(other))}}implOrd for TotalOrdwhere T:PartialOrd{fn cmp(&self,other:&TotalOrd)->Ordering{self.0 .partial_cmp(&other.0).unwrap()}}implHash for TotalOrdwhere T:Hash{fn hash(&self,state:&mut H)where H:Hasher{self.0 .hash(state);}}pub trait AsTotalOrd{fn as_total_ord(&self)->TotalOrd<&Self>;}implAsTotalOrd for T{fn as_total_ord(&self)->TotalOrd<&Self>{TotalOrd(self)}}}