Struct JSONFileHandler

Source
pub struct JSONFileHandler { /* private fields */ }
Expand description

A handler for retrieving values from a specified JSON file.

This struct is responsible for handling requests by reading content from the file specified in the underlying FileHandler, and then searching for a specific key within the parsed JSON structure. If the key is not found in the JSON structure, it delegates the request to the next handler (if provided).

use cor_args::{JSONFileHandler, Handler};

// Create a new JSONFileHandler specifying a path to a file.
let handler = JSONFileHandler::new("file.json");

// Add a fallback handler
//let handler = handler.next(some_other_handler.into());

// Handle a configuration request matching a `"some_key"` within `file.json`
let value = handler.handle_request("some_key");

Implementations§

Source§

impl JSONFileHandler

Source

pub fn new<P>(file_path: P) -> Self
where P: Into<PathBuf>,

Creates a new JSONFileHandler with the specified file path.

§Arguments
  • file_path - The path to the JSON file from which values are to be retrieved.
§Examples
use cor_args::FileHandler;

let handler = FileHandler::new("file.json");
Source

pub fn next(self, handler: Box<dyn Handler>) -> Self

Source

pub fn find_key_recursive(json_value: &Value, key: &str) -> Option<String>

Recursively searches for a key within the parsed JSON structure.

§Arguments
  • json_value - The current JSON value being inspected.
  • key - The key for which the value needs to be retrieved.
§Returns

If found, returns an Option wrapping a String value associated with the key. Otherwise, returns None.

Trait Implementations§

Source§

impl Handler for JSONFileHandler

Source§

fn handle_request(&self, key: &str) -> Option<String>

Retrieves a value for the specified key from the JSON file.

This implementation attempts to read content from the file specified in the underlying FileHandler, parses the content as JSON, and then searches for the specified key within the parsed JSON structure. If the key is not found in the JSON structure, and if a next handler is provided, it delegates the request to the next handler. If there’s no next handler, or if the key is not found in both the JSON structure and the next handler, it returns None.

§Arguments
  • key - The key for which the value needs to be retrieved from the JSON file.
§Returns

An Option containing the value associated with the key, or None if the key is not found.

Source§

impl Into<Box<dyn Handler>> for JSONFileHandler

Source§

fn into(self) -> Box<dyn Handler>

Converts this type into the (usually inferred) input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.