#pragma once
#ifndef _GLWEBTOOLS_ALGORITHM_INCLUDED_
#define _GLWEBTOOLS_ALGORITHM_INCLUDED_

#include <glwebtools/glwebtools_error.h>
#include <string>

namespace glwebtools
{
	glwebtools::Error Find(const char** _begin, const char** _end, const std::string& name, bool& result);

	template <typename GLWT_ITERATOR, typename GLWT_VALUE>
	glwebtools::Error Find(GLWT_ITERATOR _begin, GLWT_ITERATOR _end, GLWT_VALUE value, bool& result)
	{
		if (_begin == 0)
			return E_INVALID_PARAMETER;

		if (_end == 0)
			return E_INVALID_PARAMETER;

		result = false;

		for (size_t* it = _begin; it != _end; ++it)
		{
			if ((*it) == value)
			{
				result = true;
				return E_SUCCESS;
			}
		}

		return E_SUCCESS;
	}

}//glwebtools

#endif //_GLWEBTOOLS_ALGORITHM_INCLUDED_
