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

Method get_contents

atomic-repository/src/changestore/trait_impl.rs:23–51  ·  view source on GitHub ↗
(
        &self,
        hash_fn: F,
        span: GraphNode<NodeId>,
        buf: &mut [u8],
    )

Source from the content-addressed store, hash-verified

21 }
22
23 fn get_contents<F>(
24 &self,
25 hash_fn: F,
26 span: GraphNode<NodeId>,
27 buf: &mut [u8],
28 ) -> Result<usize, Self::Error>
29 where
30 F: Fn(NodeId) -> Option<Hash>,
31 {
32 // Handle ROOT span
33 if span == GraphNode::ROOT {
34 return Ok(0);
35 }
36
37 // Get the hash for this span's change
38 let hash = match hash_fn(span.change) {
39 Some(h) => h,
40 None => {
41 return Err(ChangeStoreError::NotFound {
42 hash: format!("NodeId({:?})", span.change),
43 });
44 }
45 };
46
47 let start = span.start.get() as usize;
48 let end = span.end.get() as usize;
49
50 self.copy_content_span(&hash, start, end, buf)
51 }
52
53 fn get_contents_ext(
54 &self,

Callers 3

Calls 2

copy_content_spanMethod · 0.80
getMethod · 0.65

Tested by 3