Struct aerospike::policy::WritePolicy
source · pub struct WritePolicy {
pub base_policy: BasePolicy,
pub record_exists_action: RecordExistsAction,
pub generation_policy: GenerationPolicy,
pub commit_level: CommitLevel,
pub generation: u32,
pub expiration: Expiration,
pub send_key: bool,
pub respond_per_each_op: bool,
pub durable_delete: bool,
pub filter_expression: Option<FilterExpression>,
}
Expand description
WritePolicy
encapsulates parameters for all write operations.
Fields§
§base_policy: BasePolicy
Base policy instance
record_exists_action: RecordExistsAction
RecordExistsAction qualifies how to handle writes where the record already exists.
generation_policy: GenerationPolicy
GenerationPolicy qualifies how to handle record writes based on record generation. The default (NONE) indicates that the generation is not used to restrict writes.
commit_level: CommitLevel
Desired consistency guarantee when committing a transaction on the server. The default (COMMIT_ALL) indicates that the server should wait for master and all replica commits to be successful before returning success to the client.
generation: u32
Generation determines expected generation. Generation is the number of times a record has been modified (including creation) on the server. If a write operation is creating a record, the expected generation would be 0.
expiration: Expiration
Expiration determimes record expiration in seconds. Also known as TTL (Time-To-Live). Seconds record will live before being removed by the server.
send_key: bool
Send user defined key in addition to hash digest on a record put. The default is to not send the user defined key.
respond_per_each_op: bool
For Client::operate() method, return a result for every operation.
Some list operations do not return results by default (operations::list::clear()
for
example). This can sometimes make it difficult to determine the desired result offset in
the returned bin’s result list.
Setting RespondPerEachOp to true makes it easier to identify the desired result offset (result offset equals bin’s operate sequence). This only makes sense when multiple list operations are used in one operate call and some of those operations do not return results by default.
durable_delete: bool
If the transaction results in a record deletion, leave a tombstone for the record. This prevents deleted records from reappearing after node failures. Valid for Aerospike Server Enterprise Edition 3.10+ only.
filter_expression: Option<FilterExpression>
Optional Filter Expression
Implementations§
source§impl WritePolicy
impl WritePolicy
sourcepub fn new(gen: u32, exp: Expiration) -> Self
pub fn new(gen: u32, exp: Expiration) -> Self
Create a new write policy instance with the specified generation and expiration parameters.
sourcepub const fn filter_expression(&self) -> &Option<FilterExpression>
pub const fn filter_expression(&self) -> &Option<FilterExpression>
Get the current Filter expression
Trait Implementations§
source§impl Clone for WritePolicy
impl Clone for WritePolicy
source§fn clone(&self) -> WritePolicy
fn clone(&self) -> WritePolicy
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for WritePolicy
impl Debug for WritePolicy
Auto Trait Implementations§
impl RefUnwindSafe for WritePolicy
impl Send for WritePolicy
impl Sync for WritePolicy
impl Unpin for WritePolicy
impl UnwindSafe for WritePolicy
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Policy for Twhere
T: PolicyLike,
impl<T> Policy for Twhere T: PolicyLike,
source§fn consistency_level(&self) -> &ConsistencyLevel
fn consistency_level(&self) -> &ConsistencyLevel
fn deadline(&self) -> Option<Instant>
source§fn timeout(&self) -> Option<Duration>
fn timeout(&self) -> Option<Duration>
source§fn max_retries(&self) -> Option<usize>
fn max_retries(&self) -> Option<usize>
max_retries
is exceeded, the abort will occur even if
the timeout has not yet been exceeded.