MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / put_branch

Function put_branch

atomic-core/src/crdt/queries.rs:159–180  ·  view source on GitHub ↗
(
        txn: &mut impl crate::pristine::MutTxnT,
        trunk_id: TrunkId,
        b: BranchId,
        after: Option<BranchId>,
    )

Source from the content-addressed store, hash-verified

157 }
158
159 fn put_branch(
160 txn: &mut impl crate::pristine::MutTxnT,
161 trunk_id: TrunkId,
162 b: BranchId,
163 after: Option<BranchId>,
164 ) {
165 let trunk_key = encode_trunk_id(&trunk_id);
166 let bkey = encode_branch_id(&b);
167 let serialized = SerializedBranch {
168 trunk_id,
169 state: BranchState::Alive,
170 line_hash: 0,
171 };
172 txn.put_crdt_branch(&bkey, &encode_branch_value(&serialized))
173 .unwrap();
174 txn.put_crdt_trunk_branch(&trunk_key, &bkey).unwrap();
175 let after_key = match after {
176 Some(a) => encode_branch_id(&a),
177 None => [0u8; 12],
178 };
179 txn.put_crdt_branch_after(&bkey, &after_key).unwrap();
180 }
181
182 #[test]
183 fn linear_chain_preserves_insertion_order() {

Calls 7

encode_trunk_idFunction · 0.85
encode_branch_idFunction · 0.85
encode_branch_valueFunction · 0.85
put_crdt_branchMethod · 0.80
put_crdt_trunk_branchMethod · 0.80
put_crdt_branch_afterMethod · 0.80
unwrapMethod · 0.45