use crate::context::Context;
use crate::options::Options;
struct Payload {
}
trait EntityActions {
fn create_entity(&self, id: &str, context: &Context, options: &Options) {
let Options { compress_strings_as_ints, .. } = options;
if id.is_empty() {
return;
}
if *compress_strings_as_ints {
if id.is_empty() {
return;
}
}
(context.create_entity)(id, options.skip_pending);
}
fn entities(&self, _: &str, context: &Context, options: &Options) {
let Options { responder, enum_default_symbols, .. } = options;
let entities = &context.entities;
(responder)(&[enum_default_symbols.merge_entities, entities]);
}
fn merge_entities(&self, payload: &Payload, context: &Context, options: &Options) {
(context.merge_entities)(payload, options);
}
fn remove_entity(&self, id: &str, context: &Context, options: &Options) {
let Options { compress_strings_as_ints, skip_pending, .. } = options;
if id.is_empty() {
return;
}
if *compress_strings_as_ints {
id = extract_symbol(id, context, options);
if id.is_empty() {
return;
}
}
(context.remove_entity)(id, skip_pending);
}
}
struct Actions;
impl EntityActions for Actions {}