Skip to main content

fromsoftware_shared/
researching.rs

1use std::fmt::Debug;
2
3/// A trait that's intended to be applied to a type using a derive macro when
4/// actively trying to research the behavior and meaning of that type's fields.
5///
6/// This should never be used in checked-in code. It exists only as a
7/// convenience during active reverse-engineering.
8pub trait Researching {
9    /// Returns a list of all unknown field names and references to their values.
10    ///
11    /// When `#[derive(Researching)]` is used, it treats and field whose name
12    /// begins with `_unk` or `unk` as unknown.
13    fn unknown_fields(&self) -> Vec<(&str, &dyn Debug)>;
14}