These functions lets the user query whether the edges in a graph is of a specific type. All functions return a logical vector giving whether each edge in the graph corresponds to the specific type.

```
edge_is_multiple()
edge_is_loop()
edge_is_mutual()
edge_is_from(from)
edge_is_to(to)
edge_is_between(from, to, ignore_dir = !graph_is_directed())
edge_is_incident(i)
```

- from, to, i
A vector giving node indices

- ignore_dir
Is both directions of the edge allowed

A logical vector of the same length as the number of edges in the graph

`edge_is_multiple()`

: Query whether each edge has any parallel siblings`edge_is_loop()`

: Query whether each edge is a loop`edge_is_mutual()`

: Query whether each edge has a sibling going in the reverse direction`edge_is_from()`

: Query whether an edge goes from a set of nodes`edge_is_to()`

: Query whether an edge goes to a set of nodes`edge_is_between()`

: Query whether an edge goes between two sets of nodes`edge_is_incident()`

: Query whether an edge goes from or to a set of nodes

```
create_star(10, directed = TRUE, mutual = TRUE) %>%
activate(edges) %>%
sample_frac(0.7) %>%
mutate(single_edge = !edge_is_mutual())
#> `.env` is deprecated and no longer has any effect
#> # A tbl_graph: 10 nodes and 13 edges
#> #
#> # A directed simple graph with 2 components
#> #
#> # Edge Data: 13 × 3 (active)
#> from to single_edge
#> <int> <int> <lgl>
#> 1 1 3 TRUE
#> 2 1 4 FALSE
#> 3 4 1 FALSE
#> 4 1 5 TRUE
#> 5 1 6 FALSE
#> 6 6 1 FALSE
#> # … with 7 more rows
#> #
#> # Node Data: 10 × 0
#> # … with 7 more rows
```