Skip to content

Commit

Permalink
Merge pull request #9 from superwall/develop
Browse files Browse the repository at this point in the history
0.1.11
  • Loading branch information
yusuftor authored Oct 22, 2024
2 parents 9775c17 + 4225d6c commit a070662
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 6 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# CHANGELOG

## 0.1.11

## Enhancements

- Adds new Android target
- Ensures JSON deserialization is done in a safe manner

## 0.1.10

## Enhancements
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "cel-eval"
version = "0.1.10"
version = "0.1.11"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.htmlž
Expand Down
4 changes: 3 additions & 1 deletion build_android.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ export ANDROID_NDK=r25b ANDROID_SDK=26 ANDROID_VERSION=11.0.0_r48
build_targets=(
"x86_64-linux-android"
"armv7-linux-androideabi"
"aarch64-linux-android"
"aarch64-linux-android",
"i686-linux-android"
)

for target in "${build_targets[@]}"; do
Expand All @@ -27,6 +28,7 @@ mkdir -p "${jniLibs_dir}"/{arm64-v8a,armeabi-v7a,x86_64}
cp target/aarch64-linux-android/release/libcel_eval.so "${jniLibs_dir}/arm64-v8a/libuniffi_cel.so"
cp target/armv7-linux-androideabi/release/libcel_eval.so "${jniLibs_dir}/armeabi-v7a/libuniffi_cel.so"
cp target/x86_64-linux-android/release/libcel_eval.so "${jniLibs_dir}/x86_64/libuniffi_cel.so"
cp target/i686-linux-android/release/libcel_eval.so "${jniLibs_dir}/i686/libuniffi_cel.so"

echo "Running UniFFI to generate Kotlin bindings"
mkdir -p "${target_dir}/java/uniffi/cel"
Expand Down
29 changes: 25 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,14 @@ pub trait HostContext: Send + Sync {
* @return The result of the evaluation, either "true" or "false"
*/
pub fn evaluate_ast_with_context(definition: String, host: Arc<dyn HostContext>) -> String {
let data: ASTExecutionContext = serde_json::from_str(definition.as_str()).expect("Invalid context definition for AST Execution");
let data: Result<ASTExecutionContext,_> = serde_json::from_str(definition.as_str());
let data = match data {
Ok(data) => data,
Err(_) => {
let e = Err("Invalid execution context JSON".to_string());
return serde_json::to_string(&e).unwrap()
}
};
let host = host.clone();
let res = execute_with(
AST(data.expression.into()),
Expand All @@ -76,7 +83,14 @@ pub fn evaluate_ast_with_context(definition: String, host: Arc<dyn HostContext>)
* @return The result of the evaluation, either "true" or "false"
*/
pub fn evaluate_ast(ast: String) -> String {
let data: JSONExpression = serde_json::from_str(ast.as_str()).expect("Invalid definition for AST Execution");
let data: Result<JSONExpression,_> = serde_json::from_str(ast.as_str());
let data : JSONExpression = match data {
Ok(data) => data,
Err(_) => {
let e = Err("Invalid definition for AST Execution".to_string());
return serde_json::to_string(&e).unwrap()
}
};
let ctx = Context::default();
let res = ctx.resolve(&data.into())
.map(|val| DisplayableValue(val.clone()).to_passable())
Expand All @@ -92,11 +106,18 @@ pub fn evaluate_ast(ast: String) -> String {
*/

pub fn evaluate_with_context(definition: String, host: Arc<dyn HostContext>) -> String {
let data: Result<ExecutionContext, _> = serde_json::from_str(definition.as_str());
let data: Result<ExecutionContext,_> = serde_json::from_str(definition.as_str());
let data: ExecutionContext = match data {
Ok(data) => data,
Err(_) => {
let e = Err("Invalid execution context JSON".to_string());
return serde_json::to_string(&e).unwrap()
}
};
let data = match data {
Ok(data) => data,
Err(e) => {
panic!("Error: {}", e.to_string());
return serde_json::to_string(&e).unwrap()
}
};
let compiled = Program::compile(data.expression.as_str())
Expand Down

0 comments on commit a070662

Please sign in to comment.