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:894–916  ·  view source on GitHub ↗
(&mut self, name: &str)

Source from the content-addressed store, hash-verified

892 }
893
894 fn open_or_create_view(&mut self, name: &str) -> PristineResult<ViewState> {
895 // Check if view exists
896 {
897 let table = self.txn.open_table(VIEWS)?;
898 let result = table.get(name)?;
899 if let Some(value) = result {
900 return deserialize_view_state(value.value());
901 }
902 }
903
904 // Create new view (defaults to Shared, no parent for backward compat)
905 let id = self.next_view_id.fetch_add(1, Ordering::SeqCst);
906 let state = ViewState::new(id, name.to_string());
907
908 // Save it
909 {
910 let mut table = self.txn.open_table(VIEWS)?;
911 let bytes = serialize_view_state(&state);
912 table.insert(name, bytes.as_slice())?;
913 }
914
915 Ok(state)
916 }
917
918 fn create_view(
919 &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