pub struct RiConfig { /* private fields */ }Expand description
Basic configuration storage with typed access methods.
This struct provides a simple key-value store for configuration values, with type-safe methods for accessing values as different types.
Implementations§
Source§impl RiConfig
impl RiConfig
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new empty configuration.
Returns a new RiConfig instance with an empty key-value store.
Sourcepub fn is_sensitive_key(key: &str) -> bool
pub fn is_sensitive_key(key: &str) -> bool
Checks if a configuration key is sensitive.
§Security
This method checks if the key matches any sensitive patterns. Sensitive values should be masked when logging or displaying.
Sourcepub fn mask_sensitive_value(value: &str) -> String
pub fn mask_sensitive_value(value: &str) -> String
Masks a sensitive value for safe display.
§Security
This method masks the middle portion of a sensitive value, showing only the first 2 and last 2 characters.
Sourcepub fn get_masked(&self, key: &str) -> Option<String>
pub fn get_masked(&self, key: &str) -> Option<String>
Gets a configuration value, masking sensitive values.
§Security
This method returns the value, but masks it if the key is sensitive. Use this for logging or displaying configuration values.
Sourcepub fn all_values_masked(&self) -> FxHashMap<String, String>
pub fn all_values_masked(&self) -> FxHashMap<String, String>
Gets all configuration values with sensitive values masked.
§Security
This method returns all key-value pairs with sensitive values masked. Use this for logging or displaying configuration.
Sourcepub fn set(&mut self, key: impl Into<String>, value: impl Into<String>)
pub fn set(&mut self, key: impl Into<String>, value: impl Into<String>)
Sets a configuration value.
§Parameters
key: The configuration key (typically using dot notation, e.g., “server.port”)value: The configuration value as a string
Sourcepub fn get_bool(&self, key: &str) -> Option<bool>
pub fn get_bool(&self, key: &str) -> Option<bool>
Gets a configuration value as a boolean.
Supports the following truthy values: “true”, “1”, “yes”, “on” Supports the following falsy values: “false”, “0”, “no”, “off”
§Parameters
key: The configuration key to look up
§Returns
An Option<bool> containing the parsed boolean value if the key exists and can be parsed
Sourcepub fn get_positive_u64(&self, key: &str) -> Option<u64>
pub fn get_positive_u64(&self, key: &str) -> Option<u64>
Sourcepub fn get_percentage(&self, key: &str) -> Option<f32>
pub fn get_percentage(&self, key: &str) -> Option<f32>
Sourcepub fn merge(&mut self, other: &RiConfig)
pub fn merge(&mut self, other: &RiConfig)
Merges another configuration into this one.
Values from the other configuration will override existing values with the same keys.
§Parameters
other: The other configuration to merge into this one
Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Clears all configuration values.
Removes all key-value pairs from the configuration.
pub fn get_or_default<T>(&self, key: &str, default: T) -> T
pub fn get_f64(&self, key: &str) -> Option<f64>
pub fn get_usize(&self, key: &str) -> Option<usize>
pub fn get_i32(&self, key: &str) -> Option<i32>
pub fn get_u32(&self, key: &str) -> Option<u32>
Sourcepub fn get_timeout_secs(&self, key: &str) -> Option<u32>
pub fn get_timeout_secs(&self, key: &str) -> Option<u32>
Sourcepub fn get_retry_count(&self, key: &str) -> Option<u32>
pub fn get_retry_count(&self, key: &str) -> Option<u32>
pub fn keys(&self) -> Vec<&str>
pub fn all_values(&self) -> Vec<&str>
pub fn has_key(&self, key: &str) -> bool
pub fn count(&self) -> usize
pub fn is_empty(&self) -> bool
Trait Implementations§
Source§impl<'py> IntoPyObject<'py> for RiConfig
impl<'py> IntoPyObject<'py> for RiConfig
Source§impl PyClassImpl for RiConfig
impl PyClassImpl for RiConfig
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = c"Basic configuration storage with typed access methods.\n\nThis struct provides a simple key-value store for configuration values, with\ntype-safe methods for accessing values as different types.\x00"
const RAW_DOC: &'static CStr = c"Basic configuration storage with typed access methods.\n\nThis struct provides a simple key-value store for configuration values, with\ntype-safe methods for accessing values as different types.\x00"
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<RiConfig>
type ThreadChecker = SendablePyClass<RiConfig>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyMethods<RiConfig> for PyClassImplCollector<RiConfig>
impl PyMethods<RiConfig> for PyClassImplCollector<RiConfig>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for RiConfig
impl PyTypeInfo for RiConfig
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.impl DerefToPyAny for RiConfig
impl ExtractPyClassWithClone for RiConfig
Auto Trait Implementations§
impl Freeze for RiConfig
impl RefUnwindSafe for RiConfig
impl Send for RiConfig
impl Sync for RiConfig
impl Unpin for RiConfig
impl UnsafeUnpin for RiConfig
impl UnwindSafe for RiConfig
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FitForCBox for T
impl<T> FitForCBox for T
type CBoxWrapped = Box_<T>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> ManuallyDropMut for T
impl<T> ManuallyDropMut for T
type Ret = ManuallyDrop<T>
fn manually_drop_mut<'__>(&'__ mut self) -> &'__ mut ManuallyDrop<T>
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
Use ::classinfo_object() instead and format the type name at runtime. Note that using built-in cast features is often better than manual PyTypeCheck usage.
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more