#pragma once #include <cstdint> #include <vector> #include <unordered_set> #include <unordered_map> #include <string> #include <functional> namespace luban { typedef std::uint8_t byte; typedef std::int16_t int16; typedef std::int32_t int32; typedef std::int64_t int64; typedef float float32; typedef double float64; typedef std::string String; typedef std::int64_t datetime; template<typename T> using Vector = std::vector<T>; template<typename T> using Array = std::vector<T>; template<typename T> using HashSet = std::unordered_set<T>; template<typename K, typename V> using HashMap = std::unordered_map<K, V>; template <typename T> using SharedPtr = std::shared_ptr<T>; template <typename T> using Function = std::function<T>; template <typename T> using Loader=std::function<bool(T&, const String&)>; }