MCPcopy Create free account
hub / github.com/cosdata/cosdata / get_prop_metadata

Method get_prop_metadata

src/models/cache_loader.rs:146–169  ·  view source on GitHub ↗

Reads prop_metadata from the prop file @NOTE: Right now, every call reads from the prop file, there's no caching implemented

(
        &self,
        offset: FileOffset,
        length: BytesToRead,
    )

Source from the content-addressed store, hash-verified

144 /// no caching implemented
145 ///
146 pub fn get_prop_metadata(
147 &self,
148 offset: FileOffset,
149 length: BytesToRead,
150 ) -> Result<Arc<NodePropMetadata>, BufIoError> {
151 let key = Self::get_prop_key(offset, length);
152 if let Some(metadata) = self
153 .metadata_registry
154 .get(&key)
155 .and_then(|metadata| metadata.upgrade())
156 {
157 return Ok(metadata);
158 }
159
160 let mut prop_file_guard = self.prop_file.write().unwrap();
161 let metadata = Arc::new(read_prop_metadata_from_file(
162 (offset, length),
163 &mut prop_file_guard,
164 )?);
165 drop(prop_file_guard);
166 let weak = Arc::downgrade(&metadata);
167 self.metadata_registry.insert(key, weak);
168 Ok(metadata)
169 }
170
171 #[allow(clippy::not_unsafe_ptr_arg_deref)]
172 pub fn insert_lazy_object(&self, item: SharedNode) {

Callers 2

deserializeMethod · 0.80
deserialize_rawMethod · 0.80

Calls 3

getMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected