kurrentdb/operation/delete_stream
Build and decode soft-delete stream requests.
Soft deletion marks a stream as deleted while still allowing it to be
recreated later, depending on server settings and expected revision rules.
This module is sans-IO: it builds Streams/Delete requests and decodes the
responses returned by a transport backend.
Types
Configuration
opaqueConfiguration for a soft-delete operation.
pub opaque type Configuration
Expected stream revision used for optimistic concurrency checks.
pub type ExpectedRevision {
Revision(Int)
NoStream
Any
StreamExists
}
Constructors
-
Revision(Int) -
NoStream -
Any -
StreamExists
Transaction log position returned by KurrentDB for a delete.
pub type Position {
NoPositionReturned
Position(commit_position: Int, prepare_position: Int)
}
Constructors
-
NoPositionReturned -
Position(commit_position: Int, prepare_position: Int)
Errors that can occur while decoding a delete response.
pub type ResponseError {
GrpcError(kurrentdb.GrpcError)
EmptyResponse
ManyResponses
HttpStatus(Int)
IncompleteHeader
CompressedMessage
IncompleteMessage(expected_bytes: Int)
}
Constructors
-
GrpcError(kurrentdb.GrpcError) -
EmptyResponse -
ManyResponses -
HttpStatus(Int) -
IncompleteHeader -
CompressedMessage -
IncompleteMessage(expected_bytes: Int)
Values
pub fn configure() -> Configuration
Create delete configuration with the default expected revision.
The default is Any, meaning KurrentDB will accept the delete regardless
of the stream’s current revision.
pub fn expected_revision(
config: Configuration,
expected_revision: Int,
) -> Configuration
Set the expected stream revision for optimistic concurrency.
pub fn request(
client: kurrentdb.Client,
stream stream_name: String,
config config: Configuration,
) -> request.Request(BitArray)
Build a Streams/Delete gRPC request.
The returned request is ready for a backend to send over HTTP/2.
pub fn response(
response: response.Response(BitArray),
) -> Result(Delete, ResponseError)
Decode a soft-delete response from a backend HTTP response.
Some KurrentDB versions may return no response message for delete success;
this is treated as Delete(NoPositionReturned).