blob: 8e54c4a5ca12e0021f4fb940b38358e2b46e8d3c [file] [log] [blame] [edit]
// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(dead_code)]
pub const FeatureState_FEATURE_DISABLED_BY_DEFAULT: FeatureState = 0;
pub const FeatureState_FEATURE_ENABLED_BY_DEFAULT: FeatureState = 1;
pub type FeatureState = ::std::os::raw::c_uint;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VariationsFeature {
pub name: *const ::std::os::raw::c_char,
pub default_state: FeatureState,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VariationsFeatureParam {
pub key: *mut ::std::os::raw::c_char,
pub value: *mut ::std::os::raw::c_char,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VariationsFeatureGetParamsResponseEntry {
pub name: *mut ::std::os::raw::c_char,
pub is_enabled: ::std::os::raw::c_int,
pub params: *mut VariationsFeatureParam,
pub num_params: usize,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CFeatureLibraryOpaque {
_unused: [u8; 0],
}
pub type CFeatureLibrary = *mut CFeatureLibraryOpaque;
extern "C" {
pub fn CFeatureLibraryInitialize() -> bool;
}
extern "C" {
pub fn CFeatureLibraryGet() -> CFeatureLibrary;
}
extern "C" {
pub fn CFeatureLibraryIsEnabledBlocking(
handle: CFeatureLibrary,
feature: *const VariationsFeature,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn CFeatureLibraryGetParamsAndEnabledBlocking(
handle: CFeatureLibrary,
features: *const *const VariationsFeature,
num_features: usize,
entries: *mut VariationsFeatureGetParamsResponseEntry,
) -> ::std::os::raw::c_int;
}
extern "C" {
pub fn CFeatureLibraryFreeEntries(
entries: *mut VariationsFeatureGetParamsResponseEntry,
num_features: usize,
);
}
extern "C" {
pub fn FakeCFeatureLibraryNew() -> CFeatureLibrary;
}
extern "C" {
pub fn FakeCFeatureLibraryDelete(handle: CFeatureLibrary);
}
extern "C" {
pub fn FakeCFeatureLibrarySetEnabled(
handle: CFeatureLibrary,
feature: *const ::std::os::raw::c_char,
enabled: ::std::os::raw::c_int,
);
}
extern "C" {
pub fn FakeCFeatureLibraryClearEnabled(
handle: CFeatureLibrary,
feature: *const ::std::os::raw::c_char,
);
}
extern "C" {
pub fn FakeCFeatureLibrarySetParam(
handle: CFeatureLibrary,
feature: *const ::std::os::raw::c_char,
key: *const ::std::os::raw::c_char,
value: *const ::std::os::raw::c_char,
);
}
extern "C" {
pub fn FakeCFeatureLibraryClearParams(
handle: CFeatureLibrary,
feature: *const ::std::os::raw::c_char,
);
}