Open sweihub opened 1 year ago
@ISibboI Do you have one minute to review this?
I've implemented this, please review the PR: https://github.com/ISibboI/evalexpr/pull/153, thanks!
#[test]
fn test_dot_attribute() {
let mut context = HashMapContext::new();
// omitted, check the PR
...
assert_eq!(
eval_with_context_mut(
"v = array(1,2,3,4,5);
v = v.push(6);
v.length == v.get(5)",
&mut context
),
Ok(Value::Boolean(true))
);
}
Hi Mr. @ISibboI
I poke around the threads and find related issue: https://github.com/ISibboI/evalexpr/issues/117, this is similar to what I am looking for, I will make a pull request if you aggree with my proposal.
We would like to expand the dot notation to
attribute getter operator
,object.field
will be redirected to a user defined functiondot(object, "field", ())
, the user is responsbible for implementing it, now we are able to mimic object in a simple way.Expected usage
User defined
dot
functions will handle this:future("IC2312")
dot(f, "buy", (30.5, 100))
dot(f, "ask", ())
dot(f, "bid", ())
, ...Kindly review and discuss, thanks!