use cmrdts::{ActorId, AddCtx, CmRDT, Dot, GCounter, VClock};
fn main() {
let server1_id = ActorId(1);
let server2_id = ActorId(2);
let mut server1_views = GCounter::default();
let mut server2_views = GCounter::default();
println!("Initial total views: {}", server1_views.read());
let server1_op_ctx = AddCtx {
dot: Dot {
actor: server1_id,
counter: 1,
},
clock: VClock::default(),
};
server1_views.apply(cmrdts::g_counter::Op::Inc(10), server1_op_ctx);
println!("Views on Server 1: {}", server1_views.read());
let server2_op_ctx = AddCtx {
dot: Dot {
actor: server2_id,
counter: 1,
},
clock: VClock::default(),
};
server2_views.apply(cmrdts::g_counter::Op::Inc(15), server2_op_ctx);
println!("Views on Server 2: {}", server2_views.read());
server1_views.merge(server2_views);
println!("Final total views after merge: {}", server1_views.read());
}