//! Shared registration plumbing for the three name-keyed React registries
//! (messages, requests, events). Each registry keeps its own resource and
//! entry type; only the dedup-by-`TypeId` insert lives here.
use TypeId;
use HashMap;
use *;
/// A registry entry that remembers which Rust type produced it, so a same-type
/// re-registration (a no-op) can be told apart from a name collision between
/// two different types.
pub
/// Insert `entry` under `name`: re-registering the same type is a harmless
/// no-op, while a different type claiming an occupied name warns and replaces
/// the previous entry. `kind` names the registry ("message"/"request"/"event")
/// in the warning.
pub