#pragma once

#include <tl/vector.h>
#include <cstring>//c78 - fix for error: 'strlen' is not a member of 'std' on android

#include "tl/platform.h"
#include "tl/string.h"
#include "tl/ptr.h"
#include "tl/result.h"

//#define FS_H_INCLUDED_CORRECTLY

//to disable the MSVC warning about inheriting via dominance
#if defined(_MSC_VER)
#pragma warning(disable:4250)
#endif

#include "fs/Api.h"
#include "Mode.h"
#include "Error.h"

#include "native/NativeUtils.h"
#include "AbsPath.h"


#include "ISource.h"
#include "ISink.h"

#include "IPack.h"
#include "IWritablePack.h"
#include "IFilesystem.h"

//native implementation
//#include "native/FolderFilesystem.h"
//#include "native/FolderPack.h"

#include "native/FileSource.h"
#include "native/FileSink.h"
#include "native/FileMapSource.h"
#include "native/FileMapSink.h"
//
#include "MemorySource.h"
#include "MemorySink.h"

//clean up the preprocessor mess
#undef FS_H_INCLUDED_CORRECTLY
