30 ::ll::TypedStorage<4, 4, ::FeatureOptionID> featureID;
31 ::ll::TypedStorage<4, 4, ::FeatureOptionID> dependencyFeatureID;
32 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Option>> option;
33 ::ll::TypedStorage<8, 64, ::std::function<void(
::Option&)>> setup;
34 ::ll::TypedStorage<8, 64, ::std::function<void(
bool&)>> lock;
35 ::ll::TypedStorage<4, 4, ::FeatureOptionTabID> tabID;
39 using ExpectedDisabled = ::std::vector<::FeatureOptionID>;
41 using ExpectedEnabled = ::std::vector<::FeatureOptionID>;
43 using FeatureTogglesArray = ::std::vector<::FeatureToggles::FeatureToggle>;
45 using LockFunction = ::std::function<void(
bool&)>;
47 using SetupFunction = ::std::function<void(
::Option&)>;
52 ::ll::TypedStorage<8, 24, ::std::vector<::FeatureToggles::FeatureToggle>> mFeatures;
53 ::ll::TypedStorage<8, 24, ::std::vector<::Bedrock::PubSub::Subscription>> mOptionLockSubscriptions;
54 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mFilePath;
55 ::ll::TypedStorage<1, 1, bool> mIsInGame;
65 virtual ~FeatureToggles() ;
73 MCAPI ::std::function<void(
bool&)> _getLockIfInGameOrOptionExpectationsNotMetLockCallback(
74 ::std::vector<::FeatureOptionID> expectedDisabledOptions,
75 ::std::vector<::FeatureOptionID> expectedEnabledOptions
80 MCAPI
void _registerFeature(
81 ::FeatureOptionTabID tabID,
82 ::FeatureOptionID featureID,
83 ::std::string
const& locName,
84 ::std::string
const& saveName,
86 ::FeatureOptionID dependencyFeatureID,
87 ::std::function<
void(
::Option&)> setup,
88 ::std::function<
void(
bool&)> lock
91 MCAPI
void _registerFeatures();
93 MCAPI
bool isEnabled(::FeatureOptionID featureID)
const;