#pragma once #include "ref.hh" #include #include #include #include #include namespace nix { using std::list; using std::set; using std::vector; using std::string; typedef list Strings; typedef set StringSet; typedef std::map StringMap; /* Paths are just strings. */ typedef string Path; typedef std::string_view PathView; typedef list Paths; typedef set PathSet; typedef vector> Headers; /* Helper class to run code at startup. */ template struct OnStartup { OnStartup(T && t) { t(); } }; /* Wrap bools to prevent string literals (i.e. 'char *') from being cast to a bool in Attr. */ template struct Explicit { T t; bool operator ==(const Explicit & other) const { return t == other.t; } }; }