//
// Copyright (c) 2009 Froduald Kabanza and the Université de Sherbrooke.
// Use of this software is permitted for non-commercial research purposes, and
// it may be copied or applied only for that use. All copies must include this
// copyright message.
// 
// This is a research prototype and it has not gone through intensive tests and
// is delivered as is. It may still contain bugs. Froduald Kabanza and the
// Université de Sherbrooke disclaim any responsibility for damage that may be
// caused by using it.
//
// Implementation: Simon Chamberland
// Project Manager: Froduald Kabanza
//
#include "stdafx.h"
#include "Options.h"

const std::string EnumTraits<SetStructureImplementation>::description = "set structure implementation";
const std::pair<std::string, SetStructureImplementation> EnumTraits<SetStructureImplementation>::values[] =
{
  std::pair<std::string, SetStructureImplementation>("hashset", ssHashset),
  std::pair<std::string, SetStructureImplementation>("treeset", ssTreeset),
};
std::ostream& operator<<(std::ostream& out, SetStructureImplementation impl)
{
  out << enumToString(impl);
  return out;
}

void validate(boost::any& v, const std::vector<std::string>& values, SetStructureImplementation*, int)
{
  v = validateEnum<SetStructureImplementation>(values);
}