1#![recursion_limit = "256"]
16#![allow(
17 clippy::borrowed_box,
18 clippy::derivable_impls,
19 clippy::field_reassign_with_default,
20 clippy::manual_map,
21 clippy::mem_replace_with_default,
22 clippy::new_ret_no_self,
23 clippy::new_without_default,
24 clippy::should_implement_trait,
25 clippy::useless_format
26)]
27#![cfg_attr(feature = "charon_on_charon", feature(register_tool))]
29#![cfg_attr(feature = "charon_on_charon", register_tool(charon))]
30
31#[macro_use]
32pub mod ids;
33#[macro_use]
34pub mod logger;
35pub mod ast;
36pub mod common;
37pub mod errors;
38pub mod export;
39pub mod name_matcher;
40pub mod options;
41pub mod pretty;
42pub mod transform;
43
44pub use ast::{builtins, expressions, gast, llbc_ast, meta, names, types, ullbc_ast, values};
46pub use pretty::formatter;
47
48pub const VERSION: &str = env!("CARGO_PKG_VERSION");
50
51pub fn deserialize_llbc(path: &std::path::Path) -> anyhow::Result<ast::TranslatedCrate> {
53 deserialize_llbc_with_format(path, options::SerializationFormat::Json)
54}
55
56pub fn deserialize_llbc_with_format(
58 path: &std::path::Path,
59 format: options::SerializationFormat,
60) -> anyhow::Result<ast::TranslatedCrate> {
61 use crate::export::CrateData;
62 Ok(CrateData::deserialize_from_file(path, format)?.translated)
63}