pulsar_utils/
lib.rs

1//! This crate defines utilities for the pulsar compiler, such as error
2//! reporting and semantically-rich locations. It also implements data
3//! structures such as a directed graph ([`digraph::Digraph`]) and disjoint sets
4//! ([`disjoint_set::DisjointSets`]).
5//!
6//! Copyright (C) 2024 Ethan Uppal. All rights reserved.
7
8use std::ops::Deref;
9
10pub mod digraph;
11pub mod disjoint_set;
12pub mod environment;
13pub mod error;
14pub mod format;
15pub mod id;
16pub mod loc;
17pub mod mutcell;
18
19/// A type whose `clone()` involves copying no more than 8-16 bytes of data.
20pub trait CheapClone: Clone {}
21impl<T: Clone + Deref> CheapClone for T {}