spimdisasm 2.0.0-alpha.1

MIPS disassembler
Documentation
/* SPDX-FileCopyrightText: © 2025 Decompollaborate */
/* SPDX-License-Identifier: MIT */

use crate::{
    addresses::Vram,
    collections::addended_ordered_map::{AddendedOrderedMap, FindSettings},
};

use super::SymbolMetadata;

#[derive(Debug, Clone, Hash, PartialEq, PartialOrd)]
pub struct UserSegmentMetadata {
    symbols: AddendedOrderedMap<Vram, SymbolMetadata>,
}

impl UserSegmentMetadata {
    pub(crate) fn new(symbols: AddendedOrderedMap<Vram, SymbolMetadata>) -> Self {
        Self { symbols }
    }

    #[must_use]
    pub fn find_symbol(&self, vram: Vram, settings: FindSettings) -> Option<&SymbolMetadata> {
        self.symbols.find(&vram, settings)
    }
}