use serde::{Deserialize, Serialize};
use speedy::{Readable, Writable};
use crate::structure::{guid::*, sequence_number::*};
#[derive(
Copy,
Clone,
Default,
Debug,
PartialOrd,
PartialEq,
Ord,
Eq,
Readable,
Writable,
Hash,
Serialize,
Deserialize,
)]
pub struct SampleIdentity {
pub writer_guid: GUID,
pub sequence_number: SequenceNumber,
}
#[derive(
Clone,
Copy,
Debug,
PartialOrd,
PartialEq,
Ord,
Eq,
Readable,
Writable,
Hash,
Serialize,
Deserialize,
)]
pub enum RemoteExceptionCode {
Ok,
Unsupported,
InvalidArgument,
OutOfResources,
UnknownOperation,
UnknownException,
}
impl Default for RemoteExceptionCode {
fn default() -> Self {
Self::UnknownException
}
}
#[derive(
Clone, Default, PartialOrd, PartialEq, Ord, Eq, Readable, Writable, Hash, Serialize, Deserialize,
)]
pub struct RequestHeader {
pub request_id: SampleIdentity,
pub instance_name: String, }
#[derive(
Clone, Default, PartialOrd, PartialEq, Ord, Eq, Readable, Writable, Hash, Serialize, Deserialize,
)]
pub struct ReplyHeader {
pub related_request_id: SampleIdentity,
pub remote_ex: RemoteExceptionCode,
}