Struct DynamodbConnector

Source
pub struct DynamodbConnector { /* private fields */ }
Expand description

Provides a connection to DynamoDB, potentially managing test table lifecycles.

This struct encapsulates an AWS DynamoDB client (aws_sdk_dynamodb::Client). If configured with table definitions and a local endpoint in TableConfig, it will create uniquely named tables upon construction.

If the test_utils feature is enabled and delete_on_exit is true in the configuration, the created tables will be automatically deleted when this connector is dropped.

Implementations§

Source§

impl DynamodbConnector

Source

pub async fn load(config_path: impl AsRef<Path>) -> Result<Self>

Creates a new connector by loading configuration from a YAML file.

See TableConfig::load_from_file and DynamodbConnector::try_new.

§Errors

Returns Err if loading the config file fails or if creating the connector fails (e.g., table creation fails, AWS configuration error).

Source

pub fn client(&self) -> Result<&Client>

Returns a reference to the underlying aws_sdk_dynamodb::Client.

§Errors

Returns Err (DynamoToolsError::Internal) if the client has already been taken (e.g., after Drop has started).

Source

pub fn get_created_table_name(&self, base_name: &str) -> Option<&str>

Returns the unique name of a table created by this connector, given its base name.

The base_name corresponds to the table_name field within [TableInfo] in the configuration.

Source

pub fn get_all_created_table_names(&self) -> &HashMap<String, String>

Returns a map of all tables created by this connector. Keys are the base names from the config, values are the unique created names.

Source

pub async fn try_new(config: TableConfig) -> Result<Self>

Creates a new connector based on the provided TableConfig.

  • Sets up AWS SDK configuration.
  • Creates a aws_sdk_dynamodb::Client.
  • Iterates through config.tables. For each TableInfo:
    • Attempts to create a DynamoDB table with a unique name derived from TableInfo.table_name.
    • Stores the mapping from the base name to the unique name.
§Errors

Returns Err if AWS config fails, client creation fails, or any table creation fails.

Trait Implementations§

Source§

impl Debug for DynamodbConnector

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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,

Source§

impl<T> MaybeSendSync for T