#include "ReferenceKind.h"

#include "EdgeKind.h"

namespace sourcetrail
{
	EdgeKind referenceKindToEdgeKind(ReferenceKind v)
	{
		switch (v)
		{
		case REFERENCE_TYPE_USAGE:
			return EDGE_TYPE_USAGE;
		case REFERENCE_USAGE:
			return EDGE_USAGE;
		case REFERENCE_CALL:
			return EDGE_CALL;
		case REFERENCE_INHERITANCE:
			return EDGE_INHERITANCE;
		case REFERENCE_OVERRIDE:
			return EDGE_OVERRIDE;
		case REFERENCE_TEMPLATE_ARGUMENT:
			return EDGE_TEMPLATE_ARGUMENT;
		case REFERENCE_TYPE_ARGUMENT:
			return EDGE_TYPE_ARGUMENT;
		case REFERENCE_TEMPLATE_DEFAULT_ARGUMENT:
			return EDGE_TEMPLATE_DEFAULT_ARGUMENT;
		case REFERENCE_TEMPLATE_SPECIALIZATION:
			return EDGE_TEMPLATE_SPECIALIZATION;
		case REFERENCE_TEMPLATE_MEMBER_SPECIALIZATION:
			return EDGE_TEMPLATE_MEMBER_SPECIALIZATION;
		case REFERENCE_INCLUDE:
			return EDGE_INCLUDE;
		case REFERENCE_IMPORT:
			return EDGE_IMPORT;
		case REFERENCE_MACRO_USAGE:
			return EDGE_MACRO_USAGE;
		case REFERENCE_ANNOTATION_USAGE:
			return EDGE_ANNOTATION_USAGE;
		}
		return EDGE_UNKNOWN;
	}
}
