pub trait SwiftMessageBody:
Debug
+ Clone
+ Send
+ Sync
+ Serialize
+ Any {
// Required methods
fn message_type() -> &'static str;
fn from_fields(fields: HashMap<String, Vec<String>>) -> SwiftResult<Self>
where Self: Sized;
fn to_fields(&self) -> HashMap<String, Vec<String>>;
fn required_fields() -> Vec<&'static str>;
fn optional_fields() -> Vec<&'static str>;
fn sample() -> Self
where Self: Sized;
fn sample_minimal() -> Self
where Self: Sized;
fn sample_full() -> Self
where Self: Sized;
fn sample_with_config(config: &MessageConfig) -> Self
where Self: Sized;
}
Expand description
Core trait for Swift message types
Required Methods§
Sourcefn message_type() -> &'static str
fn message_type() -> &'static str
Get the message type identifier (e.g., “103”, “202”)
Sourcefn from_fields(fields: HashMap<String, Vec<String>>) -> SwiftResult<Self>where
Self: Sized,
fn from_fields(fields: HashMap<String, Vec<String>>) -> SwiftResult<Self>where
Self: Sized,
Create from field map
Sourcefn required_fields() -> Vec<&'static str>
fn required_fields() -> Vec<&'static str>
Get required field tags for this message type
Sourcefn optional_fields() -> Vec<&'static str>
fn optional_fields() -> Vec<&'static str>
Get optional field tags for this message type
Sourcefn sample_minimal() -> Selfwhere
Self: Sized,
fn sample_minimal() -> Selfwhere
Self: Sized,
Generate a minimal sample (only mandatory fields)
Sourcefn sample_full() -> Selfwhere
Self: Sized,
fn sample_full() -> Selfwhere
Self: Sized,
Generate a full sample (all fields populated)
Sourcefn sample_with_config(config: &MessageConfig) -> Selfwhere
Self: Sized,
fn sample_with_config(config: &MessageConfig) -> Selfwhere
Self: Sized,
Generate a sample with configuration
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.