Trait RuntimePlugin

Source
pub trait RuntimePlugin:
    Debug
    + Send
    + Sync {
    // Provided methods
    fn order(&self) -> Order { ... }
    fn config(&self) -> Option<FrozenLayer> { ... }
    fn runtime_components(
        &self,
        current_components: &RuntimeComponentsBuilder,
    ) -> Cow<'_, RuntimeComponentsBuilder> { ... }
}
Expand description

Runtime plugin trait

A RuntimePlugin is the unit of configuration for augmenting the client with new behavior.

Runtime plugins can register interceptors, set runtime components, and modify configuration.

Provided Methods§

Source

fn order(&self) -> Order

Runtime plugin ordering.

There are two runtime plugin “levels” that run in the following order:

  1. Service runtime plugins - runtime plugins that pertain to the entire service.
  2. Operation runtime plugins - runtime plugins relevant only to a single operation.

This function is used to determine runtime plugin order within those levels. So regardless of this Order value, service runtime plugins will still always execute before operation runtime plugins. However, Defaults service runtime plugins will run before Overrides service runtime plugins.

Source

fn config(&self) -> Option<FrozenLayer>

Optionally returns additional config that should be added to the ConfigBag.

As a best practice, a frozen layer should be stored on the runtime plugin instance as a member, and then cloned upon return since that clone is cheap. Constructing a new Layer and freezing it will require a lot of allocations.

Source

fn runtime_components( &self, current_components: &RuntimeComponentsBuilder, ) -> Cow<'_, RuntimeComponentsBuilder>

Returns a RuntimeComponentsBuilder to incorporate into the final runtime components.

The order of runtime plugins determines which runtime components “win”. Components set by later runtime plugins will override those set by earlier runtime plugins.

If no runtime component changes are desired, just return an empty builder.

This method returns a Cow for flexibility. Some implementers may want to store the components builder as a member and return a reference to it, while others may need to create the builder every call. If possible, returning a reference is preferred for performance.

Components configured by previous runtime plugins are in the current_components argument, and can be used to create nested/wrapped components, such as a connector calling into an inner (customer provided) connector.

Implementations on Foreign Types§

Source§

impl RuntimePlugin for PayloadSigningOverrideRuntimePlugin

Source§

impl RuntimePlugin for NoAuthRuntimePlugin

Source§

impl RuntimePlugin for EnforceContentLengthRuntimePlugin

Source§

impl RuntimePlugin for MetricsRuntimePlugin

Source§

impl RuntimePlugin for CannedResponseDeserializer

Source§

impl RuntimePlugin for CannedRequestSerializer

Implementors§

Source§

impl RuntimePlugin for CloneReceiptRuleSet

Source§

impl RuntimePlugin for CreateConfigurationSet

Source§

impl RuntimePlugin for CreateConfigurationSetEventDestination

Source§

impl RuntimePlugin for CreateConfigurationSetTrackingOptions

Source§

impl RuntimePlugin for CreateCustomVerificationEmailTemplate

Source§

impl RuntimePlugin for CreateReceiptFilter

Source§

impl RuntimePlugin for CreateReceiptRule

Source§

impl RuntimePlugin for CreateReceiptRuleSet

Source§

impl RuntimePlugin for CreateTemplate

Source§

impl RuntimePlugin for DeleteConfigurationSet

Source§

impl RuntimePlugin for DeleteConfigurationSetEventDestination

Source§

impl RuntimePlugin for DeleteConfigurationSetTrackingOptions

Source§

impl RuntimePlugin for DeleteCustomVerificationEmailTemplate

Source§

impl RuntimePlugin for DeleteIdentity

Source§

impl RuntimePlugin for DeleteIdentityPolicy

Source§

impl RuntimePlugin for DeleteReceiptFilter

Source§

impl RuntimePlugin for DeleteReceiptRule

Source§

impl RuntimePlugin for DeleteReceiptRuleSet

Source§

impl RuntimePlugin for DeleteTemplate

Source§

impl RuntimePlugin for DeleteVerifiedEmailAddress

Source§

impl RuntimePlugin for DescribeActiveReceiptRuleSet

Source§

impl RuntimePlugin for DescribeConfigurationSet

Source§

impl RuntimePlugin for DescribeReceiptRule

Source§

impl RuntimePlugin for DescribeReceiptRuleSet

Source§

impl RuntimePlugin for GetAccountSendingEnabled

Source§

impl RuntimePlugin for GetCustomVerificationEmailTemplate

Source§

impl RuntimePlugin for GetIdentityDkimAttributes

Source§

impl RuntimePlugin for GetIdentityMailFromDomainAttributes

Source§

impl RuntimePlugin for GetIdentityNotificationAttributes

Source§

impl RuntimePlugin for GetIdentityPolicies

Source§

impl RuntimePlugin for GetIdentityVerificationAttributes

Source§

impl RuntimePlugin for GetSendQuota

Source§

impl RuntimePlugin for GetSendStatistics

Source§

impl RuntimePlugin for GetTemplate

Source§

impl RuntimePlugin for ListConfigurationSets

Source§

impl RuntimePlugin for ListCustomVerificationEmailTemplates

Source§

impl RuntimePlugin for ListIdentities

Source§

impl RuntimePlugin for ListIdentityPolicies

Source§

impl RuntimePlugin for ListReceiptFilters

Source§

impl RuntimePlugin for ListReceiptRuleSets

Source§

impl RuntimePlugin for ListTemplates

Source§

impl RuntimePlugin for ListVerifiedEmailAddresses

Source§

impl RuntimePlugin for PutConfigurationSetDeliveryOptions

Source§

impl RuntimePlugin for PutIdentityPolicy

Source§

impl RuntimePlugin for ReorderReceiptRuleSet

Source§

impl RuntimePlugin for SendBounce

Source§

impl RuntimePlugin for SendBulkTemplatedEmail

Source§

impl RuntimePlugin for SendCustomVerificationEmail

Source§

impl RuntimePlugin for SendEmail

Source§

impl RuntimePlugin for SendRawEmail

Source§

impl RuntimePlugin for SendTemplatedEmail

Source§

impl RuntimePlugin for SetActiveReceiptRuleSet

Source§

impl RuntimePlugin for SetIdentityDkimEnabled

Source§

impl RuntimePlugin for SetIdentityFeedbackForwardingEnabled

Source§

impl RuntimePlugin for SetIdentityHeadersInNotificationsEnabled

Source§

impl RuntimePlugin for SetIdentityMailFromDomain

Source§

impl RuntimePlugin for SetIdentityNotificationTopic

Source§

impl RuntimePlugin for SetReceiptRulePosition

Source§

impl RuntimePlugin for TestRenderTemplate

Source§

impl RuntimePlugin for UpdateAccountSendingEnabled

Source§

impl RuntimePlugin for UpdateConfigurationSetEventDestination

Source§

impl RuntimePlugin for UpdateConfigurationSetReputationMetricsEnabled

Source§

impl RuntimePlugin for UpdateConfigurationSetSendingEnabled

Source§

impl RuntimePlugin for UpdateConfigurationSetTrackingOptions

Source§

impl RuntimePlugin for UpdateCustomVerificationEmailTemplate

Source§

impl RuntimePlugin for UpdateReceiptRule

Source§

impl RuntimePlugin for UpdateTemplate

Source§

impl RuntimePlugin for VerifyDomainDkim

Source§

impl RuntimePlugin for VerifyDomainIdentity

Source§

impl RuntimePlugin for VerifyEmailAddress

Source§

impl RuntimePlugin for VerifyEmailIdentity

Source§

impl RuntimePlugin for StaticRuntimePlugin

Source§

impl RuntimePlugin for SharedRuntimePlugin