Skip to main content

Module usecase

Module usecase 

Source
Expand description

Generic use cases — one per CRUD operation, composable via hooks.

Generated code emits a type alias per entity:

ⓘ
// Generated:
pub type CreateStoredFileUseCase = CreateUseCase<StoredFile, CreateStoredFileDto, StoredFileService>;
pub type UpdateStoredFileUseCase = UpdateUseCase<StoredFile, UpdateStoredFileDto, StoredFileService>;
// ... etc.

Custom behaviour is injected through UseCaseHooks<E, DTO> — no generated code modification required.

§Lifecycle (Create example)

before_create(dto) → build entity → validate → after_create(entity) → persist → publish event

Structs§

CreateUseCase
Generic “create entity” use case.
DefaultHooks
Default no-op hooks implementation.
DeleteUseCase
Generic “delete entity” use case (soft-delete by default).
GetUseCase
Generic “get by id” use case.
ListParams
Paginated list parameters.
ListResult
Paginated list result.
ListUseCase
Generic paginated list use case.
UpdateUseCase
Generic “update entity” use case.

Enums§

UseCaseError
The standard error type for all use case operations.

Traits§

EntityFactory
Builds an entity from a Create DTO.
EntityUpdater
Applies update fields from an Update DTO to an existing entity.
ListService
Service contract for the list use case (separate because it needs pagination).
UseCaseHooks
Extension points for every CRUD use case.
UseCaseService
The minimal persistence + lookup contract required by all use cases.

Type Aliases§

UseCaseResult