1 /*++
2 Copyright (c) 2012 Microsoft Corporation
3 
4 Module Name:
5 
6     api_goal.h
7 
8 Abstract:
9     API for creating goals
10 
11 Author:
12 
13     Leonardo de Moura (leonardo) 2012-03-06.
14 
15 Revision History:
16 
17 --*/
18 #pragma once
19 
20 #include "api/api_util.h"
21 #include "tactic/goal.h"
22 
23 struct Z3_goal_ref : public api::object {
24     goal_ref m_goal;
Z3_goal_refZ3_goal_ref25     Z3_goal_ref(api::context& c) : api::object(c) {}
~Z3_goal_refZ3_goal_ref26     ~Z3_goal_ref() override {}
27 };
28 
to_goal(Z3_goal g)29 inline Z3_goal_ref * to_goal(Z3_goal g) { return reinterpret_cast<Z3_goal_ref *>(g); }
of_goal(Z3_goal_ref * g)30 inline Z3_goal of_goal(Z3_goal_ref * g) { return reinterpret_cast<Z3_goal>(g); }
to_goal_ref(Z3_goal g)31 inline goal_ref to_goal_ref(Z3_goal g) { return g == nullptr ? goal_ref() : to_goal(g)->m_goal; }
32 
33