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