couchbase_core/mutationtoken.rs
1/*
2 *
3 * * Copyright (c) 2025 Couchbase, Inc.
4 * *
5 * * Licensed under the Apache License, Version 2.0 (the "License");
6 * * you may not use this file except in compliance with the License.
7 * * You may obtain a copy of the License at
8 * *
9 * * http://www.apache.org/licenses/LICENSE-2.0
10 * *
11 * * Unless required by applicable law or agreed to in writing, software
12 * * distributed under the License is distributed on an "AS IS" BASIS,
13 * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * * See the License for the specific language governing permissions and
15 * * limitations under the License.
16 *
17 */
18
19#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
20pub struct MutationToken {
21 pub(crate) vbid: u16,
22 pub(crate) vbuuid: u64,
23 pub(crate) seqno: u64,
24}
25
26impl MutationToken {
27 pub fn new(vbid: u16, vbuuid: u64, seqno: u64) -> Self {
28 Self {
29 vbid,
30 vbuuid,
31 seqno,
32 }
33 }
34
35 pub fn vbid(&self) -> u16 {
36 self.vbid
37 }
38
39 pub fn vbuuid(&self) -> u64 {
40 self.vbuuid
41 }
42
43 pub fn seqno(&self) -> u64 {
44 self.seqno
45 }
46
47 pub fn set_vbid(&mut self, vbid: u16) {
48 self.vbid = vbid;
49 }
50
51 pub fn set_vbuuid(&mut self, vbuuid: u64) {
52 self.vbuuid = vbuuid;
53 }
54
55 pub fn set_seqno(&mut self, seqno: u64) {
56 self.seqno = seqno;
57 }
58}