convert.rs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. use super::*;
  2. use sp_runtime::traits::Hash;
  3. impl<T: Trait> From<InputPropertyValue<T>> for StoredPropertyValue<T> {
  4. fn from(input_property_value: InputPropertyValue<T>) -> Self {
  5. match input_property_value {
  6. InputPropertyValue::Single(input_value) => {
  7. StoredPropertyValue::Single(input_value.into())
  8. }
  9. InputPropertyValue::Vector(vector_input_value) => {
  10. let vec_output_property_value =
  11. VecStoredPropertyValue::new(vector_input_value.into(), T::Nonce::default());
  12. StoredPropertyValue::Vector(vec_output_property_value)
  13. }
  14. }
  15. }
  16. }
  17. impl<T: Trait> From<InputValue<T>> for StoredValue<T> {
  18. fn from(input_value: InputValue<T>) -> Self {
  19. match input_value {
  20. InputValue::Bool(value) => StoredValue::Bool(value),
  21. InputValue::Uint16(value) => StoredValue::Uint16(value),
  22. InputValue::Uint32(value) => StoredValue::Uint32(value),
  23. InputValue::Uint64(value) => StoredValue::Uint64(value),
  24. InputValue::Int16(value) => StoredValue::Int16(value),
  25. InputValue::Int32(value) => StoredValue::Int32(value),
  26. InputValue::Int64(value) => StoredValue::Int64(value),
  27. InputValue::Text(value) => StoredValue::Text(value),
  28. InputValue::TextToHash(value) => {
  29. let hash_value = value.using_encoded(<T as system::Trait>::Hashing::hash);
  30. StoredValue::Hash(hash_value)
  31. }
  32. InputValue::Reference(value) => StoredValue::Reference(value),
  33. }
  34. }
  35. }
  36. impl<T: Trait> From<VecInputValue<T>> for VecStoredValue<T> {
  37. fn from(vec_input_value: VecInputValue<T>) -> Self {
  38. match vec_input_value {
  39. VecInputValue::Bool(vec_value) => VecStoredValue::Bool(vec_value),
  40. VecInputValue::Uint16(vec_value) => VecStoredValue::Uint16(vec_value),
  41. VecInputValue::Uint32(vec_value) => VecStoredValue::Uint32(vec_value),
  42. VecInputValue::Uint64(vec_value) => VecStoredValue::Uint64(vec_value),
  43. VecInputValue::Int16(vec_value) => VecStoredValue::Int16(vec_value),
  44. VecInputValue::Int32(vec_value) => VecStoredValue::Int32(vec_value),
  45. VecInputValue::Int64(vec_value) => VecStoredValue::Int64(vec_value),
  46. VecInputValue::Text(vec_value) => VecStoredValue::Text(vec_value),
  47. VecInputValue::TextToHash(vec_value) => {
  48. let hash_vec_value: Vec<_> = vec_value
  49. .into_iter()
  50. .map(|value| value.using_encoded(<T as system::Trait>::Hashing::hash))
  51. .collect();
  52. VecStoredValue::Hash(hash_vec_value)
  53. }
  54. VecInputValue::Reference(value) => VecStoredValue::Reference(value),
  55. }
  56. }
  57. }