pub enum LinkPutOp {
Plain,
Async,
}Expand description
How an external OUT-link write should be delivered to the lset.
Mirrors the C dbCore split between a plain link put and a
put-notify-aware put: dbPutLink (synchronous, no completion
callback) vs dbPutLinkAsync (issued from dbNotify, where the
source record’s processing is held until the downstream put
completes). pvxs’s pvalink lset realises the same split as
pvaPutValue (plain, wait=false) vs pvaPutValueAsync
(wait=true, which sets record._options.block so the PUT
request carries the block option and the source record is parked
in after_put until the server acknowledges completion) —
pvxs/ioc/pvalink_lset.cpp putValue / putValueAsync.
The database selects the op from the write context: a write that
originates inside a put-notify / blocking-put chain (the source
record carries a completion wait-set) uses Async; a plain
record-processing OUT write uses Plain.
Variants§
Plain
Plain put — fire-and-forget from the lset’s perspective. Maps to
pvxs pvaPutValue (wait=false) / C dbPutLink.
Async
Completion-aware put — the originating record is part of a
put-notify / blocking-put chain. Maps to pvxs pvaPutValueAsync
(wait=true, record._options.block) / C dbPutLinkAsync.
Trait Implementations§
impl Copy for LinkPutOp
impl Eq for LinkPutOp
impl StructuralPartialEq for LinkPutOp
Auto Trait Implementations§
impl Freeze for LinkPutOp
impl RefUnwindSafe for LinkPutOp
impl Send for LinkPutOp
impl Sync for LinkPutOp
impl Unpin for LinkPutOp
impl UnsafeUnpin for LinkPutOp
impl UnwindSafe for LinkPutOp
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.