From 79edbf0bebd74d3e5b94a2d7b0d525b178dde7fb 2020-02-13 09:12:38 From: Christopher Esterhuyse Date: 2020-02-13 09:12:38 Subject: [PATCH] bit business --- diff --git a/Cargo.toml b/Cargo.toml index 75b3a4215d44c41b9c752867d3a21c40acc63490..d58c8fb0fef0baada4efbc64fea82a34276f5083 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,7 @@ authors = [ edition = "2018" [dependencies] +# hibitset = "0.6.2" # runtime stuff getrandom = "0.1.14" # tiny crate. used to guess controller-id diff --git a/src/runtime/ecs.rs b/src/runtime/ecs.rs index 90f0a55acb749ebc0015634fe548eeee0c7daa57..4c347fcf30234789aa74fd729208219714a3c628 100644 --- a/src/runtime/ecs.rs +++ b/src/runtime/ecs.rs @@ -182,6 +182,21 @@ enum Entity { fn ecs() { let entities: Vec = Default::default(); + // invariant: for all ChannelId c, assignments[(c, true)] & assignments[(c, false)] == 0; let assignments: HashMap<(ChannelId, bool), BitSet> = Default::default(); + // invariant: for all Keys k0 != k1, keys[k0] & keys[k1] == 0; + let keys: HashMap = Default::default(); + // invariant: for all Keys k, keys[k] & components == 0; + let components: BitSet = Default::default(); + // invariant: to_run &!components = 0 i.e. to_run is a subset let to_run: BitSet = Default::default(); + + // 1. } + +/* +needed operations: + +1. insert a payload and overwrite / insert its predicate assignments +2. run all machines that +*/