Skip to content

Commit

Permalink
Flatten serialize
Browse files Browse the repository at this point in the history
  • Loading branch information
mattxwang committed Jul 13, 2023
1 parent fd28f86 commit 5a3aac7
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 19 deletions.
14 changes: 7 additions & 7 deletions examples/one_shot_benchmark.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use rsdd::repr::dtree::DTree;
use rsdd::repr::var_label::VarLabel;
use rsdd::repr::var_order::VarOrder;
use rsdd::repr::vtree::VTree;
use rsdd::serialize::{ser_bdd, ser_sdd, ser_vtree};
use rsdd::serialize::{BDDSerializer, SDDSerializer, VTreeSerializer};
use serde::{Deserialize, Serialize};
use serde_json::json;
use std::fs::{self, File};
Expand Down Expand Up @@ -99,14 +99,14 @@ fn compile_sdd_dtree(str: String, _args: &Args) -> BenchResult {
let sdd = builder.compile_cnf(&cnf);

if let Some(path) = &_args.dump_sdd {
let json = ser_sdd::SDDSerializer::from_sdd(sdd);
let json = SDDSerializer::from_sdd(sdd);
let mut file = File::create(path).unwrap();
let r = file.write_all(serde_json::to_string(&json).unwrap().as_bytes());
assert!(r.is_ok(), "Error writing file");
}

if let Some(path) = &_args.dump_vtree {
let json = ser_vtree::VTreeSerializer::from_vtree(&vtree);
let json = VTreeSerializer::from_vtree(&vtree);
let mut file = File::create(path).unwrap();
let r = file.write_all(serde_json::to_string(&json).unwrap().as_bytes());
assert!(r.is_ok(), "Error writing file");
Expand All @@ -129,14 +129,14 @@ fn compile_sdd_rightlinear(str: String, _args: &Args) -> BenchResult {
let sdd = builder.compile_cnf(&cnf);

if let Some(path) = &_args.dump_sdd {
let json = ser_sdd::SDDSerializer::from_sdd(sdd);
let json = SDDSerializer::from_sdd(sdd);
let mut file = File::create(path).unwrap();
let r = file.write_all(serde_json::to_string(&json).unwrap().as_bytes());
assert!(r.is_ok(), "Error writing file");
}

if let Some(path) = &_args.dump_vtree {
let json = ser_vtree::VTreeSerializer::from_vtree(&vtree);
let json = VTreeSerializer::from_vtree(&vtree);
let mut file = File::create(path).unwrap();
let r = file.write_all(serde_json::to_string(&json).unwrap().as_bytes());
assert!(r.is_ok(), "Error writing file");
Expand All @@ -157,7 +157,7 @@ fn compile_bdd(str: String, _args: &Args) -> BenchResult {
let bdd = builder.compile_cnf(&cnf);

if let Some(path) = &_args.dump_bdd {
let json = ser_bdd::BDDSerializer::from_bdd(bdd);
let json = BDDSerializer::from_bdd(bdd);
let mut file = File::create(path).unwrap();
let r = file.write_all(serde_json::to_string(&json).unwrap().as_bytes());
assert!(r.is_ok(), "Error writing file");
Expand All @@ -182,7 +182,7 @@ fn compile_bdd_dtree(str: String, _args: &Args) -> BenchResult {
let bdd = builder.compile_plan(&plan);

if let Some(path) = &_args.dump_bdd {
let json = ser_bdd::BDDSerializer::from_bdd(bdd);
let json = BDDSerializer::from_bdd(bdd);
let mut file = File::create(path).unwrap();
let r = file.write_all(serde_json::to_string(&json).unwrap().as_bytes());
assert!(r.is_ok(), "Error writing file");
Expand Down
10 changes: 7 additions & 3 deletions src/serialize/mod.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
//! contains representations of core datastructures that can be serialized

pub mod ser_bdd;
pub mod ser_sdd;
pub mod ser_vtree;
mod ser_bdd;
mod ser_sdd;
mod ser_vtree;

pub use self::ser_bdd::*;
pub use self::ser_sdd::*;
pub use self::ser_vtree::*;
16 changes: 7 additions & 9 deletions src/wasm/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@ use crate::repr::dtree::DTree;
use crate::repr::var_order::VarOrder;
use crate::repr::wmc::WmcParams;
use crate::repr::{cnf::Cnf, var_label::VarLabel, vtree::VTree};
use crate::serialize::ser_sdd::SDDSerializer;
use crate::serialize::ser_vtree::VTreeSerializer;
use crate::serialize::{ser_bdd, ser_sdd, ser_vtree};
use crate::serialize::{BDDSerializer, SDDSerializer, VTreeSerializer};
use crate::util::semirings::finitefield::FiniteField;
use crate::util::semirings::semiring_traits::Semiring;
use wasm_bindgen::prelude::*;
Expand Down Expand Up @@ -42,7 +40,7 @@ pub fn vtree(cnf_input: String, vtree_type_input: JsValue) -> Result<JsValue, Js

let vtree = build_vtree(&cnf, vtree_type);

let serialized = ser_vtree::VTreeSerializer::from_vtree(&vtree);
let serialized = VTreeSerializer::from_vtree(&vtree);

Ok(serde_wasm_bindgen::to_value(&serialized)?)
}
Expand All @@ -55,7 +53,7 @@ pub fn bdd(cnf_input: String) -> String {
let builder = RobddBuilder::<BddApplyTable<BddPtr>>::new_default_order_lru(cnf.num_vars());
let bdd = builder.compile_cnf(&cnf);

let json = ser_bdd::BDDSerializer::from_bdd(bdd);
let json = BDDSerializer::from_bdd(bdd);

serde_json::to_string(&json).unwrap()
}
Expand All @@ -70,7 +68,7 @@ pub fn bdd_with_var_order(cnf_input: String, order: &[u64]) -> String {
let builder = RobddBuilder::new(var_order, BddApplyTable::new(21));
let bdd = builder.compile_cnf(&cnf);

let json = ser_bdd::BDDSerializer::from_bdd(bdd);
let json = BDDSerializer::from_bdd(bdd);

serde_json::to_string(&json).unwrap()
}
Expand All @@ -87,7 +85,7 @@ pub fn sdd(cnf_input: String, vtree_type_input: JsValue) -> Result<JsValue, JsVa
let builder = CompressionSddBuilder::new(vtree);
let sdd = builder.compile_cnf(&cnf);

let serialized = ser_sdd::SDDSerializer::from_sdd(sdd);
let serialized = SDDSerializer::from_sdd(sdd);

Ok(serde_wasm_bindgen::to_value(&serialized)?)
}
Expand Down Expand Up @@ -117,8 +115,8 @@ pub fn demo_model_count_sdd(cnf_input: String) -> Result<JsValue, JsValue> {

let res = SddModelCountResult {
model_count: model_count.value(),
sdd: ser_sdd::SDDSerializer::from_sdd(sdd),
vtree: ser_vtree::VTreeSerializer::from_vtree(&vtree),
sdd: SDDSerializer::from_sdd(sdd),
vtree: VTreeSerializer::from_vtree(&vtree),
};

Ok(serde_wasm_bindgen::to_value(&res)?)
Expand Down

0 comments on commit 5a3aac7

Please sign in to comment.