Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
AlgorithmCategories.cpp 1.30 KiB
#include <common/AlgorithmCategories.hpp>
#include <exception>

namespace abstraction {

abstraction::AlgorithmCategories::AlgorithmCategory AlgorithmCategories::algorithmCategory ( const std::string & category ) {
	if ( category == "default" )
		return AlgorithmCategory::DEFAULT;

	if ( category == "test" )
		return AlgorithmCategory::TEST;

	if ( category == "student" )
		return AlgorithmCategory::STUDENT;

	if ( category == "efficient" )
		return AlgorithmCategory::EFFICIENT;

	return AlgorithmCategory::NONE;
}

std::string AlgorithmCategories::toString ( abstraction::AlgorithmCategories::AlgorithmCategory category ) {
	switch ( category ) {
	case abstraction::AlgorithmCategories::AlgorithmCategory::DEFAULT:
		return "default";
	case abstraction::AlgorithmCategories::AlgorithmCategory::TEST:
		return "test";
	case abstraction::AlgorithmCategories::AlgorithmCategory::STUDENT:
		return "student";
	case abstraction::AlgorithmCategories::AlgorithmCategory::EFFICIENT:
		return "efficient";
	case abstraction::AlgorithmCategories::AlgorithmCategory::NONE:
		return "none";
	}
	throw std::logic_error ( "Unhandled category." );
}

std::ostream & operator << ( std::ostream & os, AlgorithmCategories::AlgorithmCategory category ) {
	return os << AlgorithmCategories::toString ( category );
}

} /* namespace abstraction */