10#include "functional.h"
32 static_assert(internal::always_false<T>::value,
"Requested Type is not supported");
43 bool set(
const char* name,
const T& val)
45 static_assert(internal::always_false<T>::value,
"Requested Type is not supported");
63 void observe(
const char* name, F callback)
65 internal_observe(
hash_string(name),
new internal::callback(callback));
79 virtual bool set_var(
hash_t name,
const value& val) = 0;
81 virtual void internal_observe(
hash_t name, internal::callback_base* callback) = 0;
88inline optional<value> globals_interface::get<value>(
const char* name)
const
94inline bool globals_interface::set<value>(
const char* name,
const value& val)
100inline optional<bool> globals_interface::get<bool>(
const char* name)
const
110inline bool globals_interface::set<bool>(
const char* name,
const bool& val)
126inline bool globals_interface::set<uint32_t>(
const char* name,
const uint32_t& val)
142inline bool globals_interface::set<int32_t>(
const char* name,
const int32_t& val)
148inline optional<float> globals_interface::get<float>(
const char* name)
const
158inline bool globals_interface::set<float>(
const char* name,
const float& val)
174inline bool globals_interface::set<const char*>(
const char* name,
const char*
const& val)
180inline optional<list> globals_interface::get<list>(
const char* name)
const
190inline bool globals_interface::set<list>(
const char* name,
const list& val)
Represents a global store to be shared amongst ink runners.
Definition globals.h:21
void observe(const char *name, F callback)
Observers global variable.
Definition globals.h:63
optional< T > get(const char *name) const
Access global variable of Ink runner.
Definition globals.h:30
bool set(const char *name, const T &val)
Write new value in global store.
Definition globals.h:43
virtual snapshot * create_snapshot() const =0
create a snapshot of the current runtime state.
Interface for accessing a Ink list.
Definition list.h:43
Container for an InkCPP runtime snapshot.
Definition snapshot.h:27
Contaning all modules and classes used for the inkles ink runtime.
Definition choice.h:13
unsigned int uint32_t
define basic numeric type
Definition system.h:47
std::optional< T > optional
custom optional implementation for usage if STL is disabled
Definition system.h:229
constexpr std::nullopt_t nullopt
an empty optional
Definition system.h:231
hash_t hash_string(const char *string)
Simple hash for serialization of strings.
Definition system.h:57
uint32_t hash_t
Name hash (used for temporary variables)
Definition system.h:50
A Ink variable.
Definition types.h:36
@ Float
containing a float
@ String
contaning a const char*
@ Uint32
containing uint32_t
@ List
containing a list_interface
@ Int32
containing int32_t