TopicBuilder

Struct TopicBuilder 

Source
pub struct TopicBuilder<T>{ /* private fields */ }
Expand description

Builder for SNS topics.

Supports both standard and FIFO topics with Lambda subscriptions. FIFO topics have additional configuration for deduplication and throughput.

§Example

use rusty_cdk_core::stack::StackBuilder;
use rusty_cdk_core::sns::{TopicBuilder, SubscriptionType};

let mut stack_builder = StackBuilder::new();

// Create a simple topic without subscriptions
let simple_topic = TopicBuilder::new("simple-topic")
    .build(&mut stack_builder);
 
let function = unimplemented!("create a function");

// Create a topic with a Lambda subscription
let topic = TopicBuilder::new("my-topic")
    .add_subscription(SubscriptionType::Lambda(&function))
    .build(&mut stack_builder);

Implementations§

Source§

impl TopicBuilder<StartState>

Source

pub fn new(id: &str) -> TopicBuilder<StartState>

Creates a new SNS topic builder.

§Arguments
  • id - Unique identifier for the topic
Source

pub fn add_subscription( self, subscription: SubscriptionType<'_>, ) -> TopicBuilder<StandardStateWithSubscriptions>

Adds a subscription to the topic.

For Lambda subscriptions, automatically creates the necessary permission.

Source

pub fn build(self, stack_builder: &mut StackBuilder) -> TopicRef

Source§

impl TopicBuilder<StandardStateWithSubscriptions>

Source

pub fn add_subscription( self, subscription: SubscriptionType<'_>, ) -> TopicBuilder<StandardStateWithSubscriptions>

Source

pub fn build(self, stack_builder: &mut StackBuilder) -> TopicRef

Source§

impl<T> TopicBuilder<T>

Source§

impl TopicBuilder<FifoState>

Source

pub fn fifo_throughput_scope( self, scope: FifoThroughputScope, ) -> TopicBuilder<FifoState>

Source

pub fn content_based_deduplication( self, content_based_deduplication: bool, ) -> TopicBuilder<FifoState>

Source

pub fn add_subscription( self, subscription: SubscriptionType<'_>, ) -> TopicBuilder<FifoStateWithSubscriptions>

Source

pub fn build(self, stack_builder: &mut StackBuilder) -> TopicRef

Builds the FIFO topic and adds it to the stack.

Automatically appends the required “.fifo” suffix to the topic name if not already present.

Source§

impl TopicBuilder<FifoStateWithSubscriptions>

Source

pub fn fifo_throughput_scope( self, scope: FifoThroughputScope, ) -> TopicBuilder<FifoStateWithSubscriptions>

Source

pub fn content_based_deduplication( self, content_based_deduplication: bool, ) -> TopicBuilder<FifoStateWithSubscriptions>

Source

pub fn add_subscription( self, subscription: SubscriptionType<'_>, ) -> TopicBuilder<FifoStateWithSubscriptions>

Source

pub fn build(self, stack_builder: &mut StackBuilder) -> TopicRef

Builds the FIFO topic with subscriptions and adds it to the stack.

Automatically appends the required “.fifo” suffix to the topic name if not already present. Creates Lambda permissions for all subscriptions.

Auto Trait Implementations§

§

impl<T> Freeze for TopicBuilder<T>

§

impl<T> RefUnwindSafe for TopicBuilder<T>
where T: RefUnwindSafe,

§

impl<T> Send for TopicBuilder<T>
where T: Send,

§

impl<T> Sync for TopicBuilder<T>
where T: Sync,

§

impl<T> Unpin for TopicBuilder<T>
where T: Unpin,

§

impl<T> UnwindSafe for TopicBuilder<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

Source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,