1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
use super::{SeparatorPolicy, policies}; /// Provides methods for formatting numbers with separators between the digits. pub trait Separable { /// Inserts a comma every three digits from the right. /// /// This is equivalent to `self.separate_by_policy(policies::COMMA_SEPARATOR)`. /// /// # Examples /// /// ``` /// # use thousands::*; /// assert_eq!( 12345.separate_with_commas(), "12,345" ); /// ``` fn separate_with_commas(&self) -> String { self.separate_by_policy(policies::COMMA_SEPARATOR) } /// Inserts a space every three digits from the right. /// /// This is equivalent to `self.separate_by_policy(policies::SPACE_SEPARATOR)`. /// /// # Examples /// /// ``` /// # use thousands::*; /// assert_eq!( 12345.separate_with_spaces(), "12 345" ); /// ``` fn separate_with_spaces(&self) -> String { self.separate_by_policy(policies::SPACE_SEPARATOR) } /// Inserts a period every three digits from the right. /// /// This is equivalent to `self.separate_by_policy(policies::DOT_SEPARATOR)`. /// /// # Examples /// /// ``` /// # use thousands::*; /// assert_eq!( 12345.separate_with_dots(), "12.345" ); /// ``` fn separate_with_dots(&self) -> String { self.separate_by_policy(policies::DOT_SEPARATOR) } /// Inserts an underscore every three digits from the right. /// /// This is equivalent to `self.separate_by_policy(policies::UNDERSCORE_SEPARATOR)`. /// /// # Examples /// /// ``` /// # use thousands::*; /// assert_eq!( 12345.separate_with_underscores(), "12_345" ); /// ``` fn separate_with_underscores(&self) -> String { self.separate_by_policy(policies::UNDERSCORE_SEPARATOR) } /// Adds separators according to the given [`SeparatorPolicy`]. /// /// # Examples /// /// ``` /// use thousands::{Separable, SeparatorPolicy, digits}; /// /// let policy = SeparatorPolicy { /// separator: ":", /// groups: &[1, 2, 3, 4], /// digits: digits::ASCII_DECIMAL, /// }; /// /// assert_eq!( 1234567654321u64.separate_by_policy(policy), /// "123:4567:654:32:1" ); /// ``` /// /// [`SeparatorPolicy`]: struct.SeparatorPolicy.html fn separate_by_policy(&self, policy: SeparatorPolicy) -> String; }