#pragma once
#include "./trycatch_detail.h"
#include <exception>
#include <type_traits>
#include <utility>
namespace rust {
namespace behavior {
class missing {};
missing trycatch(...);
template <typename Try, typename Fail>
static typename ::std::enable_if<::std::is_same<
decltype(trycatch(::std::declval<Try>(), ::std::declval<Fail>())),
missing>::value>::type
trycatch(Try &&func, Fail &&fail) noexcept try {
func();
} catch (::std::exception const &e) {
fail(e.what());
}
} // namespace behavior
} // namespace rust