Struct pact_models::message::Message
source · [−]pub struct Message {
pub id: Option<String>,
pub description: String,
pub provider_states: Vec<ProviderState>,
pub contents: OptionalBody,
pub metadata: HashMap<String, Value>,
pub matching_rules: MatchingRules,
pub generators: Generators,
}
Expand description
Struct that defines a message.
Fields
id: Option<String>
Interaction ID. This will only be set if the Pact file was fetched from a Pact Broker
description: String
Description of this message interaction. This needs to be unique in the pact file.
provider_states: Vec<ProviderState>
Optional provider state for the interaction.
See <https://docs.pact.io/getting_started/provider_states>
for more info on provider states.
contents: OptionalBody
The contents of the message
metadata: HashMap<String, Value>
Metadata associated with this message.
matching_rules: MatchingRules
Matching rules
generators: Generators
Generators
Implementations
sourceimpl Message
impl Message
sourcepub fn from_json(
index: usize,
json: &Value,
spec_version: &PactSpecification
) -> Result<Message>
pub fn from_json(
index: usize,
json: &Value,
spec_version: &PactSpecification
) -> Result<Message>
Constructs a Message
from the Json
struct.
sourcepub fn to_json(&self, spec_version: &PactSpecification) -> Value
pub fn to_json(&self, spec_version: &PactSpecification) -> Value
Converts this interaction to a Value
struct.
note: spec version is preserved for compatibility with the RequestResponsePact interface
and for future use
sourcepub fn message_content_type(&self) -> Option<ContentType>
pub fn message_content_type(&self) -> Option<ContentType>
Returns the content type of the message by returning the content type associated with the body, or by looking it up in the message metadata
sourcepub fn as_message_content(&self) -> MessageContents
pub fn as_message_content(&self) -> MessageContents
Converts this message into a V4 message content
Trait Implementations
sourceimpl HttpPart for Message
impl HttpPart for Message
sourcefn headers(&self) -> &Option<HashMap<String, Vec<String>>>
fn headers(&self) -> &Option<HashMap<String, Vec<String>>>
Returns the headers of the HTTP part.
sourcefn headers_mut(&mut self) -> &mut HashMap<String, Vec<String>>
fn headers_mut(&mut self) -> &mut HashMap<String, Vec<String>>
Returns the headers of the HTTP part in a mutable form.
sourcefn body(&self) -> &OptionalBody
fn body(&self) -> &OptionalBody
Returns the body of the HTTP part.
sourcefn body_mut(&mut self) -> &mut OptionalBody
fn body_mut(&mut self) -> &mut OptionalBody
Returns a mutable pointer to the body of the HTTP part.
sourcefn matching_rules(&self) -> &MatchingRules
fn matching_rules(&self) -> &MatchingRules
Returns the matching rules of the HTTP part.
sourcefn matching_rules_mut(&mut self) -> &mut MatchingRules
fn matching_rules_mut(&mut self) -> &mut MatchingRules
Returns the matching rules of the HTTP part.
sourcefn generators(&self) -> &Generators
fn generators(&self) -> &Generators
Returns the generators of the HTTP part.
sourcefn generators_mut(&mut self) -> &mut Generators
fn generators_mut(&mut self) -> &mut Generators
Returns the generators of the HTTP part.
sourcefn lookup_content_type(&self) -> Option<String>
fn lookup_content_type(&self) -> Option<String>
Lookup up the content type for the part
sourcefn detect_content_type(&self) -> Option<ContentType>
fn detect_content_type(&self) -> Option<ContentType>
Tries to detect the content type of the body by matching some regular expressions against the first 32 characters. Read more
sourcefn content_type(&self) -> Option<ContentType>
fn content_type(&self) -> Option<ContentType>
Determine the content type of the HTTP part. If a Content-Type
header is present, the
value of that header will be returned. Otherwise, the body will be inspected. Read more
sourcefn has_header(&self, header_name: &str) -> bool
fn has_header(&self, header_name: &str) -> bool
Checks if the HTTP Part has the given header
sourcefn lookup_header_value(&self, header_name: &str) -> Option<String>
fn lookup_header_value(&self, header_name: &str) -> Option<String>
Checks if the HTTP Part has the given header
sourcefn has_text_body(&self) -> bool
fn has_text_body(&self) -> bool
If the body is a textual type (non-binary)
sourcefn add_header(&mut self, key: &str, val: Vec<&str>)
fn add_header(&mut self, key: &str, val: Vec<&str>)
Convenience method to add a header
sourcefn build_generators(
&self,
category: &GeneratorCategory
) -> HashMap<DocPath, Generator>
fn build_generators(
&self,
category: &GeneratorCategory
) -> HashMap<DocPath, Generator>
Builds a map of generators from the generators and matching rules
sourceimpl Interaction for Message
impl Interaction for Message
sourcefn is_request_response(&self) -> bool
fn is_request_response(&self) -> bool
If this is a request/response interaction
sourcefn as_request_response(&self) -> Option<RequestResponseInteraction>
fn as_request_response(&self) -> Option<RequestResponseInteraction>
Returns the request/response interaction if it is one
sourcefn is_message(&self) -> bool
fn is_message(&self) -> bool
If this is a message interaction
sourcefn as_message(&self) -> Option<Message>
fn as_message(&self) -> Option<Message>
Returns the message interaction if it is one
sourcefn id(&self) -> Option<String>
fn id(&self) -> Option<String>
Interaction ID. This will only be set if the Pact file was fetched from a Pact Broker
sourcefn description(&self) -> String
fn description(&self) -> String
Description of this interaction. This needs to be unique in the pact file.
sourcefn set_description(&mut self, description: &str)
fn set_description(&mut self, description: &str)
Set the description of this interaction. This needs to be unique in the pact file.
sourcefn provider_states(&self) -> Vec<ProviderState>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn provider_states(&self) -> Vec<ProviderState>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Optional provider states for the interaction.
See <https://docs.pact.io/getting_started/provider_states>
for more info on provider states. Read more
sourcefn provider_states_mut(&mut self) -> &mut Vec<ProviderState>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn provider_states_mut(&mut self) -> &mut Vec<ProviderState>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Mutable Optional provider states for the interaction.
See <https://docs.pact.io/getting_started/provider_states>
for more info on provider states. Read more
sourcefn contents(&self) -> OptionalBody
fn contents(&self) -> OptionalBody
Some interactions have multiple contents (like request/response), so it is impossible to know which to return for this method
Body of the response or message
sourcefn contents_for_verification(&self) -> OptionalBody
fn contents_for_verification(&self) -> OptionalBody
The contents of the part to use for verification. For example, with HTTP interactions, this will be the response body Read more
sourcefn content_type(&self) -> Option<ContentType>
fn content_type(&self) -> Option<ContentType>
Some interactions have multiple contents (like request/response), so it is impossible to know which to return for this method
Determine the content type of the interaction. If a Content-Type
header or metadata value is present, the
value of that value will be returned. Otherwise, the contents will be inspected. Read more
sourcefn as_v4(&self) -> Option<Box<dyn V4Interaction>>
fn as_v4(&self) -> Option<Box<dyn V4Interaction>>
Returns the interaction in V4 format
sourcefn as_v4_mut(&mut self) -> Option<&mut dyn V4Interaction>
fn as_v4_mut(&mut self) -> Option<&mut dyn V4Interaction>
Returns a mutable reference for the interaction. If the interaction is not a V4 format,
will return None. The as_v4
method can convert to V4 format (via cloning the data). Read more
sourcefn as_v4_http(&self) -> Option<SynchronousHttp>
fn as_v4_http(&self) -> Option<SynchronousHttp>
Returns the interaction in V4 format
sourcefn as_v4_async_message(&self) -> Option<AsynchronousMessage>
fn as_v4_async_message(&self) -> Option<AsynchronousMessage>
Returns the interaction in V4 format
sourcefn as_v4_sync_message(&self) -> Option<SynchronousMessage>
fn as_v4_sync_message(&self) -> Option<SynchronousMessage>
Returns the interaction in V4 format
sourcefn as_v4_http_mut(&mut self) -> Option<&mut SynchronousHttp>
fn as_v4_http_mut(&mut self) -> Option<&mut SynchronousHttp>
Returns the interaction in V4 format
sourcefn as_v4_async_message_mut(&mut self) -> Option<&mut AsynchronousMessage>
fn as_v4_async_message_mut(&mut self) -> Option<&mut AsynchronousMessage>
Returns the interaction in V4 format
sourcefn as_v4_sync_message_mut(&mut self) -> Option<&mut SynchronousMessage>
fn as_v4_sync_message_mut(&mut self) -> Option<&mut SynchronousMessage>
Returns the interaction in V4 format
sourcefn boxed(&self) -> Box<dyn Interaction + Send + Sync>
fn boxed(&self) -> Box<dyn Interaction + Send + Sync>
Clones this interaction and wraps it in a Box
sourcefn arced(&self) -> Arc<dyn Interaction + Send + Sync>
fn arced(&self) -> Arc<dyn Interaction + Send + Sync>
Clones this interaction and wraps it in an Arc
sourcefn thread_safe(&self) -> Arc<Mutex<dyn Interaction + Send + Sync>>
fn thread_safe(&self) -> Arc<Mutex<dyn Interaction + Send + Sync>>
Clones this interaction and wraps it in an Arc and Mutex
sourcefn matching_rules(&self) -> Option<MatchingRules>
fn matching_rules(&self) -> Option<MatchingRules>
Some interactions have multiple contents (like request/response), so it is impossible to know which to return for this method
Returns the matching rules associated with this interaction (if there are any)
sourcefn is_v4_http(&self) -> bool
fn is_v4_http(&self) -> bool
If the interaction is V4 HTTP
sourcefn is_v4_async_message(&self) -> bool
fn is_v4_async_message(&self) -> bool
If the interaction is a V4 message
sourcefn is_v4_sync_message(&self) -> bool
fn is_v4_sync_message(&self) -> bool
If the interaction is a V4 synchronous request/response message
impl Eq for Message
impl StructuralEq for Message
impl StructuralPartialEq for Message
Auto Trait Implementations
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnwindSafe for Message
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more