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
impl LiteModelProvider
Sourcepub fn new(inner: Arc<dyn ModelProvider>) -> Self
pub fn new(inner: Arc<dyn ModelProvider>) -> Self
Create a new lite provider wrapping a full provider
Sourcepub fn inner(&self) -> &dyn ModelProvider
pub fn inner(&self) -> &dyn ModelProvider
Get reference to the underlying provider
Sourcepub fn into_inner(self) -> Arc<dyn ModelProvider>
pub fn into_inner(self) -> Arc<dyn ModelProvider>
Unwrap to get the underlying provider
Sourcepub fn supports_validation(&self) -> bool
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
impl Clone for LiteModelProvider
Source§fn clone(&self) -> LiteModelProvider
fn clone(&self) -> LiteModelProvider
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LiteModelProvider
impl Debug for LiteModelProvider
Source§impl ModelProvider for LiteModelProvider
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,
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,
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>
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>
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,
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,
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,
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,
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,
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,
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,
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
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,
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,
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
fn is_union_type(&self, type_info: &TypeInfo) -> bool
Check if a type is a union type
Auto Trait Implementations§
impl Freeze for LiteModelProvider
impl !RefUnwindSafe for LiteModelProvider
impl Send for LiteModelProvider
impl Sync for LiteModelProvider
impl Unpin for LiteModelProvider
impl !UnwindSafe for LiteModelProvider
Blanket Implementations§
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
Mutably borrows from an owned value. Read more