Repository: SeaQL/sea-query (language: rust)

Issue:
Visibility of fields of FunctionCall inadvertently changed to pub(crate)
## Description
In the bugfix #475 of issue #398, the enum variant SimpleExpr::FunctionCall(Function, Vec<SimpleExpr>) was replaced by SimpleExpr::FunctionCall(FunctionCall). Since the fields of the struct FunctionCall are pub(crate), and the struct has no accessors, it is no longer possible to inspect the internals of a function. This functionality is essential for SQL-rewriting, and necessary to be able to make assertions about functions without making SQL-text. 

## Steps to Reproduce

Try to access FunctionCall args outside sea-query. 

### Expected Behavior

Have access to the inner structure of a function when using sea-query as a library, such as with e.g. SimpleExpr::Binary.

### Actual Behavior

Inner structure of FunctionCall hidden from library users.

### Reproduces How Often

Always. 

## Versions

Since the introduction of #475 

## Additional Information

Suggest either changing visibility of fields or providing pub getters if inappropriate ways of constructing FunctionCall is a concern. 
Please let me know if I should make a pull request. 



Discussion / hints:
Sure. I think pub getters are the way to go. PR is welcomed!

Fix patch:
diff --git a/src/func.rs b/src/func.rs
index c020eb118..15b2de4d8 100644
--- a/src/func.rs
+++ b/src/func.rs
@@ -59,6 +59,14 @@ impl FunctionCall {
         self.args = args.into_iter().collect();
         self
     }
+
+    pub fn get_func(&self) -> &Function {
+        &self.func
+    }
+
+    pub fn get_args(&self) -> &Vec<SimpleExpr> {
+        &self.args
+    }
 }
 
 /// Function call helper.


Test patch: