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 short_exec_error(
13 stmt_for_fact_errors.clone(),
14 "",
15 Some(well_defined_error),
16 vec![],
17 )
18 })?;
19 self.store_exist_or_and_chain_atomic_fact_without_well_defined_verified_and_infer(
20 fact.clone(),
21 )
22 .map_err(|store_fact_error| {
23 short_exec_error(stmt_for_fact_errors, "", Some(store_fact_error), vec![])
24 })
25 }
26
27 pub fn verify_or_and_chain_atomic_fact_well_defined_and_store_and_infer(
28 &mut self,
29 fact: &OrAndChainAtomicFact,
30 verify_state: &VerifyState,
31 ) -> Result<InferResult, RuntimeError> {
32 let stmt_for_fact_errors: Stmt = fact.clone().to_fact().into();
33 self.verify_or_and_chain_atomic_fact_well_defined(fact, verify_state)
34 .map_err(|well_defined_error| {
35 short_exec_error(
36 stmt_for_fact_errors.clone(),
37 "",
38 Some(well_defined_error),
39 vec![],
40 )
41 })?;
42 self.store_or_and_chain_atomic_fact_without_well_defined_verified_and_infer(fact.clone())
43 .map_err(|store_fact_error| {
44 short_exec_error(stmt_for_fact_errors, "", Some(store_fact_error), vec![])
45 })
46 }
47
48 pub fn verify_fact_well_defined_and_store_and_infer(
49 &mut self,
50 fact: Fact,
51 verify_state: &VerifyState,
52 ) -> Result<InferResult, RuntimeError> {
53 let stmt_for_fact_errors: Stmt = fact.clone().into();
54 self.verify_well_defined_and_store_and_infer(fact, verify_state)
55 .map_err(|e| short_exec_error(stmt_for_fact_errors, "", Some(e), vec![]))
56 }
57}