#ifndef EABASETYPESPLUS_PATH_H_
#define EABASETYPESPLUS_PATH_H_

namespace EA
{
	class RawString;
	class String;
}

namespace EA
{
	namespace Types
	{
		namespace Path
		{
			void AppendRelative(EA::RawString& dst, const EA::RawString& p1, const EA::RawString& p2);
			void AppendRelative(EA::RawString& dst, const EA::RawString& p1, const EA::String& p2);
			void AppendRelative(EA::RawString& dst, const EA::RawString& p1, const char* p2c);
			void AppendRelative(EA::RawString& dst, const char* p1c, const char* p2c);

			void AppendRaw(EA::RawString& dst, const EA::RawString& p1, const EA::RawString& p2);
			void AppendRaw(EA::RawString& dst, const EA::RawString& p1, const EA::String& p2);
			void AppendRaw(EA::RawString& dst, const EA::RawString& p1, const char* p2c);
			void AppendRaw(EA::RawString& dst, const char* p1c, const char* p2c);

			void GetPath(EA::RawString& dst, const EA::RawString& p);
			void GetPath(EA::RawString& dst, const EA::String& p);
			void GetPath(EA::RawString& dst, const char* pc);

			bool IsAbsolute(const EA::RawString& p);
			bool IsAbsolute(const EA::String& p);
			bool IsAbsolute(const char* pc);
		}
	}
}

#endif /* EABASETYPESPLUS_PATH_H_ */
