Many of the expression structs have public fields, which enables the AST to be rewritten with them (as a consumer can create them). The FunctionCallExpr struct's fields are marked pub(crate) however. Were these left private intentionally? If yes, would you be open to exposing a way to create this struct (perhaps making any needed validation checks, etc)? If this was an oversight, would you be open to a PR making them public?
I have a use case for rewriting expressions associated with specific fields, and I think without some way to create a FunctionCallExpr, I will not have fully rewritten all expressions in the filter.