message.rs 598 B

1234567891011121314151617181920212223242526272829
  1. use crate::state::PythAccountType;
  2. pub mod price;
  3. #[derive(Copy, Clone)]
  4. #[repr(u8)]
  5. pub enum MessageSchema {
  6. Full = 0,
  7. Compact = 1,
  8. Minimal = 2,
  9. Dummy = 3,
  10. }
  11. impl MessageSchema {
  12. pub fn to_u8(&self) -> u8 {
  13. *self as u8
  14. }
  15. }
  16. pub fn get_schemas(account_type: PythAccountType) -> Vec<MessageSchema> {
  17. match account_type {
  18. PythAccountType::Price => vec![MessageSchema::Full, MessageSchema::Compact],
  19. _ => vec![MessageSchema::Full],
  20. }
  21. }
  22. pub trait AccumulatorSerializer {
  23. fn accumulator_serialize(&self) -> anchor_lang::Result<Vec<u8>>;
  24. }