litex/execute/
exec_verify_then_store_facts.rs1use crate::prelude::*;
2
3impl Runtime {
4 pub fn verify_exist_or_and_chain_atomic_fact_well_defined_and_store_and_infer(
5 &mut self,
6 fact: &ExistOrAndChainAtomicFact,
7 verify_state: &VerifyState,
8 ) -> Result<InferResult, RuntimeError> {
9 let stmt_for_fact_errors: Stmt = fact.clone().to_fact().into();
10 self.verify_exist_or_and_chain_atomic_fact_well_defined(fact, verify_state)
11 .map_err(|well_defined_error| {
12 exec_stmt_error_with_stmt_and_cause(
13 stmt_for_fact_errors.clone(),
14 well_defined_error,
15 )
16 })?;
17 self.store_exist_or_and_chain_atomic_fact_without_well_defined_verified_and_infer(
18 fact.clone(),
19 )
20 .map_err(|store_fact_error| {
21 exec_stmt_error_with_stmt_and_cause(stmt_for_fact_errors, store_fact_error)
22 })
23 }
24
25 pub fn verify_or_and_chain_atomic_fact_well_defined_and_store_and_infer(
26 &mut self,
27 fact: &OrAndChainAtomicFact,
28 verify_state: &VerifyState,
29 ) -> Result<InferResult, RuntimeError> {
30 let stmt_for_fact_errors: Stmt = fact.clone().to_fact().into();
31 self.verify_or_and_chain_atomic_fact_well_defined(fact, verify_state)
32 .map_err(|well_defined_error| {
33 exec_stmt_error_with_stmt_and_cause(
34 stmt_for_fact_errors.clone(),
35 well_defined_error,
36 )
37 })?;
38 self.store_or_and_chain_atomic_fact_without_well_defined_verified_and_infer(fact.clone())
39 .map_err(|store_fact_error| {
40 exec_stmt_error_with_stmt_and_cause(stmt_for_fact_errors, store_fact_error)
41 })
42 }
43
44 pub fn verify_fact_well_defined_and_store_and_infer(
45 &mut self,
46 fact: Fact,
47 verify_state: &VerifyState,
48 ) -> Result<InferResult, RuntimeError> {
49 let stmt_for_fact_errors: Stmt = fact.clone().into();
50 self.verify_well_defined_and_store_and_infer(fact, verify_state)
51 .map_err(|e| exec_stmt_error_with_stmt_and_cause(stmt_for_fact_errors, e))
52 }
53}