3#include "clipper/clipper.hpp"
9std::string get_net_name(
const class Net *net);
13void format_progress(std::ostringstream &oss,
size_t i,
size_t n);
16template <
typename... ArgsGetRule,
typename Tfn,
typename... ArgsGetClearance>
17auto find_clearance(
const class BoardRules &rules, Tfn fn,
const std::set<int> &layers,
18 std::tuple<ArgsGetRule...> args_get_rule, std::tuple<ArgsGetClearance...> args_get_clearance)
21 return ranges::min(layers | ranges::views::transform([&rules, fn, &args_get_clearance, &args_get_rule](
int layer) {
22 auto &rule = std::apply(
23 [&rules, fn, layer ](
auto &&...args) ->
const auto & {
24 return std::invoke(fn, rules, args..., layer);
28 return std::apply([&rule](
auto &&...args) {
return rule.get_clearance(args...); },
Definition clipper.hpp:197