#pragma once #include #include #include #include #include namespace yyccshared::literals { class UtfLiterals { public: UtfLiterals(); ~UtfLiterals(); YYCC_DELETE_COPY_MOVE(UtfLiterals) size_t get_size() const; const std::vector& get_u8str_vec() const; const std::vector& get_u16str_vec() const; const std::vector& get_u32str_vec() const; const std::vector& get_wstr_vec() const; private: const std::vector& u8str_vec; const std::vector& u16str_vec; const std::vector& u32str_vec; const std::vector& wstr_vec; }; class OtherLiteral { public: OtherLiteral(std::string&& other_str, uint32_t windows_ident, std::string&& iconv_ident, std::u8string&& pycodec_ident); ~OtherLiteral(); YYCC_DEFAULT_COPY_MOVE(OtherLiteral) const std::string& get_other_str() const; uint32_t get_windows_ident() const; const std::string& get_iconv_ident() const; const std::u8string& get_pycodec_ident() const; private: std::string other_str; uint32_t windows_ident; std::string iconv_ident; std::u8string pycodec_ident; }; class OtherLiterals { public: OtherLiterals(); ~OtherLiterals(); YYCC_DELETE_COPY_MOVE(OtherLiterals) size_t get_size() const; const std::vector& get_other_str_vec() const; const std::vector& get_u8str_vec() const; const std::vector& get_wstr_vec() const; private: const std::vector& other_str_vec; const std::vector& u8str_vec; const std::vector& wstr_vec; }; } // namespace yyccshared::literals