#pragma once #include #include #include #include #include namespace erebos { using std::optional; using std::string; using std::vector; struct ContactData; struct IdentityData; struct Contact::Priv { vector> data; Identity identity; void init(); std::once_flag initFlag {}; optional name {}; static List loadList(vector> &&, vector &&); }; struct ContactData { static ContactData load(const Ref &); Ref store(const Storage &) const; vector> prev; vector>> identity; optional name; }; }