void LineBucket::render(Painter& painter,
                        const StyleLayer& layer,
                        const TileID& id,
                        const mat4& matrix) {
    painter.renderLine(*this, *layer.as<LineLayer>(), id, matrix);
}
void LineBucket::render(Painter& painter, const std::string& layer_name, const Tile::ID& id) {
    painter.renderLine(*this, layer_name, id);
}
void LineBucket::render(Painter& painter, util::ptr<StyleLayer> layer_desc, const Tile::ID& id, const mat4 &matrix) {
    painter.renderLine(*this, layer_desc, id, matrix);
}
void LineBucket::render(Painter& painter,
                        const StyleLayer& layer_desc,
                        const TileID& id,
                        const mat4& matrix) {
    painter.renderLine(*this, layer_desc, id, matrix);
}
void LineBucket::render(Painter& painter, std::shared_ptr<StyleLayer> layer_desc, const Tile::ID& id) {
    painter.renderLine(*this, layer_desc, id);
}