fix(ds): make conditionals less confusing

This commit is contained in:
Andrew Mayorov 2024-07-17 16:21:33 +02:00
parent 14022aded1
commit 0c05b3f019
No known key found for this signature in database
GPG Key ID: 2837C62ACFBFED5D
1 changed files with 6 additions and 5 deletions

View File

@ -113,14 +113,15 @@
| {delete, message(_)}.
%% Precondition.
%% Fails whole batch if the message in question does not match (`while'), or
%% does match (`unless'). Here "match" means that it either just exists (when
%% pattern is '_') or has exactly the same payload, rest of the message fields are
%% irrelevant. Useful to construct batches with "compare-and-set" semantics.
%% Fails whole batch if the storage already has the matching message (`if_exists'),
%% or does not yet have (`unless_exists'). Here "matching" means that it either
%% just exists (when pattern is '_') or has exactly the same payload, rest of the
%% message fields are irrelevant.
%% Useful to construct batches with "compare-and-set" semantics.
%% Note: backends may not support this, but if they do only DBs with `atomic_batches'
%% enabled are expected to support preconditions in batches.
-type precondition() ::
{while | unless, message(iodata() | '_')}.
{if_exists | unless_exists, message(iodata() | '_')}.
-type rank_x() :: term().