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}