// Copyright Two Neutron Stars Incorporated and contributors
// SPDX-License-Identifier: BlueOak-1.0.0

//! Test infrastructure for partition writer/reader round-trip tests.

#![allow(dead_code)]

use crate::{
  partitions::{
    FileSymbols, LinkedSymbols, MergedSymbols, SymbolResolution, Symbols,
  },
  test_helpers::{DV, SI, TP},
};

// -- Type aliases for define_partitions! paste ---------------------------------

type SymbolsPartition = Symbols<DV, SI, TP>;
type FileSymbolsPartition = FileSymbols<DV, SI, TP>;
type LinkedSymbolsPartition = LinkedSymbols<DV, SI, TP>;
type MergedSymbolsPartition = MergedSymbols<DV, SI, TP>;
type SymbolResolutionPartition = SymbolResolution<DV, SI, TP>;

// All partitions go in `index` to avoid needing serde::Serialize on Symbol.
// Symbols is CAS (Record=Symbol, IndexEntry=()), but putting it in `index`
// still generates the correct HasPartition impls and HList stores.
laburnum::define_partitions! {
  Test,
  partitions = [],
  index = [
    Symbols,
    FileSymbols,
    LinkedSymbols,
    MergedSymbols,
    SymbolResolution,
  ],
}
