ENVIRONMENT_SCOPE(ENVIRONMENT &aEnvironment)
A text evaluation frame with one frozen clock and memoized external queries.
std::map< wxString, wxString > m_gitHashes
static wxDateTime CurrentTime()
void RecordEnvironmentVariable(const wxString &aName, const std::optional< wxString > &aValue)
const VCS_VALUE & VcsValue(const VCS_KEY &aKey, const std::function< VCS_VALUE()> &aRead)
friend class SOURCE_SCOPE
ENVIRONMENT(const wxDateTime &aTime=wxDateTime::Now())
const wxString & GitHash(const wxString &aPath, const std::function< wxString()> &aRead)
Return the value memoized for this frame.
static ENVIRONMENT * Current()
void RecordCrossReference(const CROSS_REFERENCE_KEY &aKey, const CROSS_REFERENCE_VALUE &aValue)
std::tuple< VCS_QUERY, wxString, std::string, int, bool > VCS_KEY
Query, absolute path (Git directory for HEAD), selector or pattern, options, and whether the context ...
std::map< VCS_KEY, VCS_VALUE > m_vcsValues
std::pair< wxString, int > CROSS_REFERENCE_KEY
SOURCE_SCOPE(ENVIRONMENT &aEnvironment, ENVIRONMENT::SOURCE_VALUES &aValues)
ENVIRONMENT & m_environment
ENVIRONMENT::SOURCE_VALUES & m_values
SOURCE_SCOPE * m_previous