liurenjie1024 commented on PR #241:
URL: https://github.com/apache/iceberg-rust/pull/241#issuecomment-2031946776

   > @liurenjie1024 @ZENOTME @sdd @Xuanwo I'd really appreciate your thoughts 
on this:
   > 
   > I took a closer look at the work @sdd has already done - and I think in 
order to proceed it would make sense to split the `ManifestEvaluator`, 
`InclusiveProjection` and `PartitionEvaluator` into separate modules.
   > 
   > I am thinking about putting each visitor into its own file within 
`/iceberg/src/expr` (perhaps even another subfolder /visitors) - for example: 
`/iceberg/src/expr/manifest_evaluator.rs.`
   > 
   > This way, we could create individual issues on each implementation - and 
work better in parallel.
   > 
   > Perhaps, it also makes sense to provide a trait to make sure each visitor 
adheres to the same interface (although I'm not sure this is neccessary right 
now...)
   > 
   > ```rust
   > // Pseudo-Example
   > pub trait BooleanVisitor:
   >   fn eval() -> boolean
   > ```
   
   +1 for splitting these into split modules. Instead of a boolean visitor, I'm 
thinking about a post order predicate visitor:
   ```rust
   pub trait BoundPredicateVisitor {
       
   }
   ```
   which is somehow motivated by @viirya 's 
[pr](https://github.com/apache/iceberg-rust/pull/295/files#diff-a59622727cd67153abdf02031475bf8a1b1921738df4ca9903a685ff6970b7aaR472),
 but move the travsering flow out of trait body.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to