xref: /aosp_15_r20/system/server_configurable_flags/libflags/lib.rs (revision 207333786ba243bc7d4d69ef6b05487aa7071806)
1*20733378SAndroid Build Coastguard Worker //
2*20733378SAndroid Build Coastguard Worker // Copyright (C) 2021 The Android Open Source Project
3*20733378SAndroid Build Coastguard Worker //
4*20733378SAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License");
5*20733378SAndroid Build Coastguard Worker // you may not use this file except in compliance with the License.
6*20733378SAndroid Build Coastguard Worker // You may obtain a copy of the License at
7*20733378SAndroid Build Coastguard Worker //
8*20733378SAndroid Build Coastguard Worker //      http://www.apache.org/licenses/LICENSE-2.0
9*20733378SAndroid Build Coastguard Worker //
10*20733378SAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software
11*20733378SAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS,
12*20733378SAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*20733378SAndroid Build Coastguard Worker // See the License for the specific language governing permissions and
14*20733378SAndroid Build Coastguard Worker // limitations under the License.
15*20733378SAndroid Build Coastguard Worker //
16*20733378SAndroid Build Coastguard Worker 
17*20733378SAndroid Build Coastguard Worker //! This module implements safe wrappers for GetServerConfigurableFlag method
18*20733378SAndroid Build Coastguard Worker //! from libflags.
19*20733378SAndroid Build Coastguard Worker 
20*20733378SAndroid Build Coastguard Worker pub use ffi::GetServerConfigurableFlag;
21*20733378SAndroid Build Coastguard Worker 
22*20733378SAndroid Build Coastguard Worker #[cxx::bridge]
23*20733378SAndroid Build Coastguard Worker mod ffi {
24*20733378SAndroid Build Coastguard Worker     unsafe extern "C++" {
25*20733378SAndroid Build Coastguard Worker         include!("rust_get_flags.hpp");
26*20733378SAndroid Build Coastguard Worker 
27*20733378SAndroid Build Coastguard Worker         /// Use the category name and flag name registered in SettingsToPropertiesMapper.java
28*20733378SAndroid Build Coastguard Worker         /// to query the experiment flag value. This method will return default_value if
29*20733378SAndroid Build Coastguard Worker         /// querying fails.
30*20733378SAndroid Build Coastguard Worker         /// Note that for flags from Settings.Global, experiment_category_name should
31*20733378SAndroid Build Coastguard Worker         /// always be global_settings.
GetServerConfigurableFlag( experiment_category_name: &str, experiment_flag_name: &str, default_value: &str, ) -> String32*20733378SAndroid Build Coastguard Worker         fn GetServerConfigurableFlag(
33*20733378SAndroid Build Coastguard Worker             experiment_category_name: &str,
34*20733378SAndroid Build Coastguard Worker             experiment_flag_name: &str,
35*20733378SAndroid Build Coastguard Worker             default_value: &str,
36*20733378SAndroid Build Coastguard Worker         ) -> String;
37*20733378SAndroid Build Coastguard Worker     }
38*20733378SAndroid Build Coastguard Worker }
39