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

Method output_line

atomic-core/src/output/traits.rs:657–678  ·  view source on GitHub ↗
(&mut self, node: GraphNode<NodeId>, get_contents: F)

Source from the content-addressed store, hash-verified

655
656impl<W: Write> VertexBuffer for Writer<W> {
657 fn output_line<E, F>(&mut self, node: GraphNode<NodeId>, get_contents: F) -> Result<(), E>
658 where
659 E: From<std::io::Error>,
660 F: FnOnce(&mut [u8]) -> Result<(), E>,
661 {
662 // Resize buffer to fit span content
663 let len = node.len();
664 self.buffer.resize(len, 0);
665
666 // Get content from change
667 get_contents(&mut self.buffer)?;
668
669 // Write content
670 self.writer.write_all(&self.buffer)?;
671
672 // Track newline state
673 if !self.buffer.is_empty() {
674 self.at_newline = self.buffer.ends_with(b"\n");
675 }
676
677 Ok(())
678 }
679
680 fn output_conflict_marker(
681 &mut self,

Calls 2

lenMethod · 0.45
is_emptyMethod · 0.45