use proptest::prelude::*;
use arkhe_forge_core::typecode;
pub fn core_component_typecode() -> impl Strategy<Value = u32> {
typecode::CORE_COMPONENT.0..=typecode::CORE_COMPONENT.1
}
pub fn core_event_typecode() -> impl Strategy<Value = u32> {
typecode::CORE_EVENT.0..=typecode::CORE_EVENT.1
}
pub fn canonical_verb_typecode() -> impl Strategy<Value = u32> {
typecode::CORE_VERB_CANONICAL.0..=typecode::CORE_VERB_CANONICAL.1
}
pub fn shell_scoped_typecode() -> impl Strategy<Value = u32> {
typecode::SHELL_SCOPED.0..=typecode::SHELL_SCOPED.1
}
pub fn tick_value() -> impl Strategy<Value = u64> {
0u64..=u64::MAX
}
pub fn entity_id_nz() -> impl Strategy<Value = core::num::NonZeroU64> {
(1u64..=u64::MAX).prop_map(|v| {
core::num::NonZeroU64::new(v).unwrap_or(core::num::NonZeroU64::MIN)
})
}