use core::ffi::c_void;
use crate::abi::Status;
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct ResourceKey {
pub guid: [u8; 16],
pub type_hash: u32,
pub part: u32,
}
pub type ResourcePatchFn = unsafe extern "system" fn(
base: *const u8,
base_len: usize,
user: *mut c_void,
out: *mut *const u8,
out_len: *mut usize,
) -> Status;
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct RecipeRuleKind(pub u32);
impl RecipeRuleKind {
pub const RECIPE: Self = Self(0);
pub const OUTPUT: Self = Self(1);
pub const WORKSHOP: Self = Self(2);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct RecipeKind(pub u32);
impl RecipeKind {
pub const OTHER: Self = Self(0);
pub const BUILDING_BLOCK: Self = Self(1);
pub const ROOF: Self = Self(2);
pub const OVERGROWTH: Self = Self(3);
pub const TERRAIN: Self = Self(4);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct EntityDataFlags(pub u32);
impl EntityDataFlags {
pub const NONE: Self = Self(0);
pub const SENT: Self = Self(1);
}