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

Source from the content-addressed store, hash-verified

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