#pragma once

#include <yandex/maps/wiki/graph/common.h>
#include <yandex/maps/wiki/graph/graph.h>

#include <functional>

namespace maps {
namespace wiki {
namespace graph {

typedef std::function<void(
                NodeID /*fromNodeId*/,
                NodeID /*toNodeId*/,
                size_t /*distance*/)> BreadthFirstSearchStep;

void breadthFirstSearch(
        GetOutEdges outEdges,
        BreadthFirstSearchStep step,
        NodeID fromNodeId,
        NodePredicate isLockNode);

} // namespace graph
} // namespace wiki
} // namespace maps
