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

Method open_or_create_view

atomic-core/src/pristine/txn/write/mod.rs:420–442  ·  view source on GitHub ↗
(&mut self, name: &str)

Source from the content-addressed store, hash-verified

418 }
419
420 fn open_or_create_view(&mut self, name: &str) -> PristineResult<ViewState> {
421 // Check if view exists
422 {
423 let table = self.txn.open_table(VIEWS)?;
424 let result = table.get(name)?;
425 if let Some(value) = result {
426 return deserialize_view_state(value.value());
427 }
428 }
429
430 // Create new view (defaults to Shared, no parent for backward compat)
431 let id = self.next_view_id.fetch_add(1, Ordering::SeqCst);
432 let state = ViewState::new(id, name.to_string());
433
434 // Save it
435 {
436 let mut table = self.txn.open_table(VIEWS)?;
437 let bytes = serialize_view_state(&state);
438 table.insert(name, bytes.as_slice())?;
439 }
440
441 Ok(state)
442 }
443
444 fn create_view(
445 &mut self,

Callers 15

test_view_operationsFunction · 0.80
test_del_viewFunction · 0.80
test_del_changeFunction · 0.80
test_reinsert_changeFunction · 0.80
test_abort_transactionFunction · 0.80
initMethod · 0.80
unrecordMethod · 0.80
reinsert_changeMethod · 0.80

Calls 5

deserialize_view_stateFunction · 0.85
serialize_view_stateFunction · 0.85
getMethod · 0.65
insertMethod · 0.45
as_sliceMethod · 0.45

Tested by 9

test_view_operationsFunction · 0.64
test_del_viewFunction · 0.64
test_del_changeFunction · 0.64
test_reinsert_changeFunction · 0.64
test_abort_transactionFunction · 0.64