git.delta.rocks / jrsonnet / refs/commits / 76b0db1d8913

difftreelog

feat builtin downcasting

Yaroslav Bolyukin2023-02-16parent: #5acdbdb.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-evaluator/src/function/builtin.rsdiffbeforeafterboth
1use std::borrow::Cow;1use std::{any::Any, borrow::Cow};
22
3use jrsonnet_gcmodule::Trace;3use jrsonnet_gcmodule::Trace;
44
26 /// Call the builtin26 /// Call the builtin
27 fn call(&self, ctx: Context, loc: CallLocation<'_>, args: &dyn ArgsLike) -> Result<Val>;27 fn call(&self, ctx: Context, loc: CallLocation<'_>, args: &dyn ArgsLike) -> Result<Val>;
28
29 fn as_any(&self) -> &dyn Any;
28}30}
2931
30pub trait StaticBuiltin: Builtin + Send + Sync32pub trait StaticBuiltin: Builtin + Send + Sync
77 self.handler.call(&args)79 self.handler.call(&args)
78 }80 }
81
82 fn as_any(&self) -> &dyn Any {
83 self
84 }
79}85}
8086
81pub trait NativeCallbackHandler: Trace {87pub trait NativeCallbackHandler: Trace {
modifiedcrates/jrsonnet-macros/src/lib.rsdiffbeforeafterboth
380 let result: #result = #name(#(#pass)*);380 let result: #result = #name(#(#pass)*);
381 <_ as Typed>::into_result(result)381 <_ as Typed>::into_result(result)
382 }382 }
383 fn as_any(&self) -> &dyn ::std::any::Any {
384 self
385 }
383 }386 }
384 };387 };
385 })388 })