Fix Pair.init and add .fromRaw constructor

main
copygirl 8 months ago
parent dbfe13af58
commit 90e1fba5fd
  1. 11
      src/pair.zig

@ -31,11 +31,16 @@ pub fn Pair(comptime ctx: anytype) type {
world: *World, world: *World,
raw: c.ecs_id_t, raw: c.ecs_id_t,
pub fn fromRaw(world: *World, relation_: c.ecs_entity_t, target_: c.ecs_entity_t) Self {
return .{ .world = world, .raw = c.ecs_pair(relation_, target_) };
}
/// Build a pair from the specified `relation` and `target` entities. /// Build a pair from the specified `relation` and `target` entities.
/// The specified entities must be alive in the world. /// Returns an error if either of the entities is not alive.
pub fn init(relation_: Entity, target_: Entity) !Self { pub fn init(relation_: Entity, target_: Entity) !Self {
const raw = c.ecs_make_pair(relation_.ensureAlive().raw, target_.ensureAlive().raw); try relation_.ensureAlive();
return .{ .world = relation_.world, .raw = raw }; try target_.ensureAlive();
return fromRaw(relation_.world, relation_.raw, target_.raw);
} }
/// Ensures this `Pair` is valid and its `relation` and `target` /// Ensures this `Pair` is valid and its `relation` and `target`

Loading…
Cancel
Save