use serde::{Deserialize, Serialize}; use crate::Opening; #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub struct Patch; crate::social_cob! { body = Patch, change = PatchChange, cob = PatchCob, collection = knot_record::pull::PATCH_COLLECTION, opening = Opening::Contribution, } #[cfg(test)] mod tests { use super::*; use crate::SocialChange; use crate::social::seeded; use knot_cob::ChangePayload; use knot_record::pull::patch_collection; use knot_record::ticket::ticket_collection; use knot_types::{RecordAddress, RecordRkey}; #[test] fn patch_change_round_trips() { let change = SocialChange::Open { creation: seeded( RecordAddress::new( patch_collection(), RecordRkey::new("3lubrptx57d22").unwrap(), ), Some(RecordAddress::new( ticket_collection(), RecordRkey::new("3lubrptx57d33").unwrap(), )), ), body: Patch, }; assert_eq!( PatchChange::decode(&change.encode().unwrap()).unwrap(), change, "a patch change round trips through its own encoding" ); } }