LiteModelProvider

Struct LiteModelProvider 

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

Lightweight ModelProvider wrapper that delegates to a full provider but excludes validation-related functionality to break circular dependencies.

This provider is used in scenarios where we need basic type information without profile validation capabilities, preventing circular dependencies between ModelProvider and FhirPathEvaluator.

Implementations§

Source§

impl LiteModelProvider

Source

pub fn new(inner: Arc<dyn ModelProvider>) -> Self

Create a new lite provider wrapping a full provider

Source

pub fn inner(&self) -> &dyn ModelProvider

Get reference to the underlying provider

Source

pub fn into_inner(self) -> Arc<dyn ModelProvider>

Unwrap to get the underlying provider

Source

pub fn supports_validation(&self) -> bool

Check if this provider supports enhanced validation (always returns false for lite provider)

Trait Implementations§

Source§

impl Clone for LiteModelProvider

Source§

fn clone(&self) -> LiteModelProvider

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LiteModelProvider

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ModelProvider for LiteModelProvider

Source§

fn get_type<'life0, 'life1, 'async_trait>( &'life0 self, type_name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Option<TypeInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Core type lookup
Source§

fn get_element_type<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, parent_type: &'life1 TypeInfo, property_name: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Option<TypeInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Get element type from complex type
Source§

fn of_type(&self, type_info: &TypeInfo, target_type: &str) -> Option<TypeInfo>

Get type from union type
Source§

fn get_element_names(&self, parent_type: &TypeInfo) -> Vec<String>

Get element names from complex type
Source§

fn get_children_type<'life0, 'life1, 'async_trait>( &'life0 self, parent_type: &'life1 TypeInfo, ) -> Pin<Box<dyn Future<Output = Result<Option<TypeInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Returns a union type of all possible child element types
Source§

fn get_elements<'life0, 'life1, 'async_trait>( &'life0 self, type_name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<ElementInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get detailed information about elements of a type for completion suggestions
Source§

fn get_resource_types<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get list of all resource types
Source§

fn get_complex_types<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get list of all complex types
Source§

fn get_primitive_types<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get list of all primitive types
Source§

fn resource_type_exists<'life0, 'life1, 'async_trait>( &'life0 self, resource_type: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Check if a resource type exists
Source§

fn get_fhir_version<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<FhirVersion>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get the FHIR version supported by this provider
Source§

fn is_type_derived_from(&self, derived_type: &str, base_type: &str) -> bool

Check if one type is derived from another using schema hierarchy Default implementation - override in concrete providers with actual schema data
Source§

fn get_choice_types<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, parent_type: &'life1 str, property_name: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<ChoiceTypeInfo>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Get choice type metadata for a property (valueX patterns)
Source§

fn get_union_types<'life0, 'life1, 'async_trait>( &'life0 self, type_info: &'life1 TypeInfo, ) -> Pin<Box<dyn Future<Output = Result<Option<Vec<TypeInfo>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get union type information for a type
Source§

fn is_union_type(&self, type_info: &TypeInfo) -> bool

Check if a type is a union 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.