Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. use crate::types::{DInteger, DFloat, DataTypes};
  2. use num_traits::{Float, NumCast, ToPrimitive};
  3. use num::{PrimInt, Signed};
  4. use std::iter::Product;
  5.  
  6. /// Basic elementary cell in data frame
  7. #[derive(Debug, Clone)]
  8. pub enum Element {
  9. Text(String),
  10. Integer(i32),
  11. Float(f32),
  12. Bool(bool)
  13. }
  14.  
  15. impl Element {
  16. pub fn data_type(&self) -> DataTypes {
  17. match self {
  18. Element::Text(_) => DataTypes::Text,
  19. Element::Integer(_) => DataTypes::Integer,
  20. Element::Float(_) => DataTypes::Float,
  21. Element::Bool(_) => DataTypes::Bool,
  22. _ => DataTypes::Text
  23. }
  24. }
  25. }
  26.  
  27. impl From<String> for Element {
  28. fn from(v: String) -> Self {
  29. Element::Text(v)
  30. }
  31. }
  32.  
  33. impl From<DInteger> for Element {
  34. fn from(v: DInteger) -> Self {
  35. Element::Integer(v)
  36. }
  37. }
  38.  
  39. impl From<DFloat> for Element {
  40. fn from(v: DFloat) -> Self {
  41. Element::Float(v)
  42. }
  43. }
  44.  
  45. impl From<bool> for Element {
  46. fn from(v: bool) -> Self {
  47. Element::Bool(v)
  48. }
  49. }
  50.  
  51. impl From<&str> for Element {
  52. fn from(v: &str) -> Self {
  53. Element::Text(v.to_owned())
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement