public void SetToggleConfig(ManagedUpdatesBehaviour component, ObjectToggleConfig toggleConfig)
 {
     component.gameObject.SetActive(toggleConfig.HasFlag(ObjectToggleConfig.GameObjectActive));
     component.enabled                  = toggleConfig.HasFlag(ObjectToggleConfig.ComponentEnabled);
     component.updateConfig.update      = toggleConfig.HasFlag(ObjectToggleConfig.Update);
     component.updateConfig.fixedUpdate = toggleConfig.HasFlag(ObjectToggleConfig.FixedUpdate);
 }
        internal static void GetExpectedUpdateFlagsFromConfig(ObjectToggleConfig config, out bool updateExpected, out bool fixedUpdateExpected)
        {
            updateExpected = config.HasFlag(
                ObjectToggleConfig.GameObjectActive | ObjectToggleConfig.ComponentEnabled | ObjectToggleConfig.Update
                );

            fixedUpdateExpected = config.HasFlag(
                ObjectToggleConfig.GameObjectActive | ObjectToggleConfig.ComponentEnabled | ObjectToggleConfig.FixedUpdate
                );
        }
 private T InstantiateManagedUpdateGameObject <T>(
     ManagedExecutionGroup group,
     ObjectToggleConfig config,
     Transform parent = null) where T : ManagedUpdatesBehaviour
 {
     return(ManagedUpdatesBehaviour.Create <T>(
                new ManagedUpdatesBehaviour.Config(
                    group,
                    config.HasFlag(ObjectToggleConfig.Update),
                    config.HasFlag(ObjectToggleConfig.FixedUpdate)),
                config.HasFlag(ObjectToggleConfig.GameObjectActive),
                config.HasFlag(ObjectToggleConfig.ComponentEnabled),
                parent
                ));
 }