MCPcopy Create free account
hub / github.com/apache/datafusion / map_until_stop_and_collect

Method map_until_stop_and_collect

datafusion/common/src/tree_node.rs:1201–1221  ·  view source on GitHub ↗
(
        self,
        mut f: F,
    )

Source from the content-addressed store, hash-verified

1199 }
1200
1201 fn map_until_stop_and_collect<
1202 F: FnMut(Self::Item) -> Result<Transformed<Self::Item>>,
1203 >(
1204 self,
1205 mut f: F,
1206 ) -> Result<Transformed<Vec<Self::Item>>> {
1207 let mut tnr = TreeNodeRecursion::Continue;
1208 let mut transformed = false;
1209 self.map(|item| match tnr {
1210 TreeNodeRecursion::Continue | TreeNodeRecursion::Jump => {
1211 f(item).map(|result| {
1212 tnr = result.tnr;
1213 transformed |= result.transformed;
1214 result.data
1215 })
1216 }
1217 TreeNodeRecursion::Stop => Ok(item),
1218 })
1219 .collect::<Result<Vec<_>>>()
1220 .map(|data| Transformed::new(data, transformed, tnr))
1221 }
1222}
1223
1224/// Transformation helper to access [`Transformed`] fields in a [`Result`] easily.

Callers 2

rewrite_extension_inputsFunction · 0.80
map_childrenMethod · 0.80

Calls 2

newFunction · 0.85
mapMethod · 0.45

Tested by

no test coverage detected