laburnum 1.17.1

An LSP framework for building language servers and compilers, powered by an incremental query tree with content-addressed storage, task-based dataflow, and parallel queries.
Documentation
// Copyright Two Neutron Stars Incorporated and contributors
// SPDX-License-Identifier: BlueOak-1.0.0

//! Hashing utilities for Laburnum.
//!
//! This module provides two distinct hashing mechanisms with different
//! guarantees:
//!
//! ## Ident Hashes ([`ident`])
//!
//! - **Algorithm**: rapidhash v3 with fixed seed
//! - **Portability**: Stable across builds, architectures, and machines
//! - **Const Support**: Can be computed at compile time
//! - **Use Cases**: String identifiers, HashMap/HashSet keys, symbols
//!
//! ## Content Hashes ([`content`])
//!
//! - **Algorithm**: xxhash (128-bit)
//! - **Portability**: Runtime-only, no cross-build guarantees
//! - **Use Cases**: Content-addressed storage, chunk IDs, cache keys

pub mod content;
pub mod ident;

pub use {
  content::{
    ContentHash,
    ContentHashMap,
    ContentHashMapExt,
    ContentHashSet,
    ContentHashSetExt,
    ContentHashState,
    ContentHashedStore,
    ContentHashedWriter,
    ContentHasher,
  },
  ident::{
    HashMapExt,
    HashSetExt,
    Ident,
    IdentHashMap,
    IdentHashSet,
    IdentHashState,
  },
};