#pragma once
#include "dll_macro.h"
#include <string>
#include <memory>
struct innerIdentifier;
class DLL_API Identifier {
public:
    Identifier(std::shared_ptr<innerIdentifier> inner);
    //Identifier(params string[] identifiers);
    //Identifier(Identifier identifier, params string[] extensions)
    int CompareTo(Identifier other);
    //static void CheckIdentifiers(IEnumerable<string> identifiers)
    std::string ToString();
    int GetHashCode();
    bool operator==(const Identifier& other) const;
    bool operator!=(const Identifier& other) const;
    bool operator<(const Identifier& id) const;
    bool operator>(const Identifier& id) const;
    bool isNull() const;
    

private:
    std::shared_ptr<innerIdentifier> inner;
    
};

