Skip to main content

Crate ddd_toolkit

Crate ddd_toolkit 

Source
Expand description

English: Re-exports the traits and helpers from ddd-toolkit-core 0.4, including Entity, ValueObject, AggregateRoot, Repository, AsyncRepository, event publishing, CQRS, and event-sourcing contracts. Storage adapters and async runtimes are supplied by the application.

With the default derive feature, the ValueObject, Entity, DomainEvent, and AggregateRoot derive macros are also available at this crate’s root. Macro 0.4 requires consumers to add ddd-toolkit-core = "0.4.0" directly, even when invoking derives through this facade. Trait-only usage does not.

The optional serde feature enables core’s serde support and the serde derives needed by generated deserializers. Serialization is opt-in per value object with #[value_object(serde)]; put this flag last when combining options. In macro 0.4.0, single-field tuple enum variants cannot round-trip their own JSON; use named variants instead. Secret requires no feature and redacts formatting and zeroizes its contents on drop without a feature flag.

日本語: ddd-toolkit-core 0.4 のトレイトとヘルパーを再公開します。 Entity、ValueObject、AggregateRoot、Repository、 AsyncRepository、イベント発行、CQRS、イベントソーシングの契約を含みます。 ストレージのアダプターと非同期ランタイムはアプリケーションが提供します。

既定の derive feature では ValueObject、Entity、DomainEvent、 AggregateRoot の derive マクロもルートから利用できます。マクロ 0.4 は ファサード経由でも利用側に ddd-toolkit-core = "0.4.0" の直接依存を要求します。 トレイトだけを使用する場合、直接依存は不要です。

任意の serde feature はコアの serde 対応と生成された逆直列化に必要な serde の derive を有効にします。直列化は型ごとに #[value_object(serde)] で指定し、 他のオプションと併用するときはこのフラグを最後に置きます。マクロ 0.4.0 では 1フィールドのタプル型 enum variant は自身の JSON 出力を逆変換できないため、 名前付き variant を使ってください。全 derive に直列化が自動適用されるわけではありません。 Secret は feature 指定なしで使え、書式出力を秘匿化して破棄時に内容をゼロ化します。

§Example / 使用例

English: Validation returns an application-defined error; construction uses try_new rather than the removed TryFrom implementation.

日本語: 検証はアプリケーション定義のエラーを返します。廃止された TryFrom 実装の代わりに try_new で構築します。

#[derive(ddd_toolkit::ValueObject)]
#[value_object(validate = validate_email, error = &'static str)]
struct Email(String);

fn validate_email(value: &str) -> Result<(), &'static str> {
    if value.contains('@') { Ok(()) } else { Err("missing @") }
}

let email = Email::try_new("a@b.com".to_owned()).unwrap();
assert_eq!(email.as_inner(), "a@b.com");
assert_eq!(Email::try_new("invalid".to_owned()), Err("missing @"));
let key = ddd_toolkit::Secret::new("sekret".to_owned());
assert_eq!(format!("{key:?}"), "[REDACTED]");
assert_eq!(key.expose_secret(|value| value.len()), 6);

Structs§

AggregateSnapshot
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
And
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AppendResult
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncLifecycleContext
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncTransactionalOutboxLifecycleContext
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
DeliveryMetadata
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
EventIdentity
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
LifecycleContext
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
NoStream
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
Not
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
Or
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
OutboxClaim
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
OutboxMessageId
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
ProjectionCheckpoint
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
RehydratedAggregate
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
RevisionConflict
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
Secret
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
SecretMetadata
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
StreamHistory
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
StreamRevision
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
TransactionalOutboxLifecycleContext
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
Transition
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
UpcasterChain
English: Exposes core 0.4’s domain, persistence, and event-workflow API.

Enums§

AppendError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncTransactionalOutboxCompletionError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncTransactionalOutboxOperationError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
CurrentRevision
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
ExpectedRevision
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
LifecycleCompletionError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
LifecycleOperationError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
LoadResult
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
ProjectionApplication
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
ReplayError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
SnapshotLoadError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
SnapshotReplayError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
SnapshotSaveError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
SnapshotUse
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
StreamHistoryError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
TransactionalOutboxCompletionError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
TransactionalOutboxOperationError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.

Traits§

AggregateCreator
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AggregateReplay
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AggregateRoot
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncAggregateCreator
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncCommandHandler
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncDomainEventPublisher
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncEventConsumer
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncEventStore
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncIdempotentProjection
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncLifecycleCallback
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncProjection
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncProjectionCheckpointStore
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncQueryHandler
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncRepository
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncSnapshotStore
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncTransactionalOutbox
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
CommandHandler
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
DomainEvent
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
DomainEventConversion
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
DomainEventDeliveryMetadata
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
DomainEventMetadata
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
DomainEventPublisher
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
DomainFactory
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
DomainService
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
Entity
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
EventConsumer
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
EventStore
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
EventUpcaster
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
IdempotentProjection
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
LifecycleCallback
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
Policy
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
ProcessManager
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
Projection
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
ProjectionCheckpointStore
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
QueryHandler
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
Repository
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
SnapshotStore
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
Specification
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
TransactionalOutbox
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
UnitOfWork
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
ValueObject
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
VersionedEvent
English: Exposes core 0.4’s domain, persistence, and event-workflow API.

Functions§

dispatch_events
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
dispatch_events_async
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
replay_aggregate
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
replay_with_optional_snapshot
English: Exposes core 0.4’s domain, persistence, and event-workflow API.

Type Aliases§

AsyncOutboxLifecycleCompletionError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncOutboxLifecycleContext
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
AsyncOutboxLifecycleOperationError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
OutboxLifecycleCompletionError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
OutboxLifecycleContext
English: Exposes core 0.4’s domain, persistence, and event-workflow API.
OutboxLifecycleOperationError
English: Exposes core 0.4’s domain, persistence, and event-workflow API.

Derive Macros§

AggregateRoot
English: Exposes the four derives; consumers must depend directly on core 0.4.
DomainEvent
English: Exposes the four derives; consumers must depend directly on core 0.4.
Entity
English: Exposes the four derives; consumers must depend directly on core 0.4.
ValueObject
English: Exposes the four derives; consumers must depend directly on core 0.4.