pub struct PluginCustomValueWithSource { /* private fields */ }
Expand description
Wraps a PluginCustomValue
together with its PluginSource
, so that the CustomValue
methods can be implemented by calling the plugin, and to ensure that any custom values sent to a
plugin came from it originally.
Implementations§
Source§impl PluginCustomValueWithSource
impl PluginCustomValueWithSource
Sourcepub fn new(
inner: PluginCustomValue,
source: Arc<PluginSource>,
) -> PluginCustomValueWithSource
pub fn new( inner: PluginCustomValue, source: Arc<PluginSource>, ) -> PluginCustomValueWithSource
Wrap a PluginCustomValue
together with its source.
Sourcepub fn into_value(self, span: Span) -> Value
pub fn into_value(self, span: Span) -> Value
Create a Value
containing this custom value.
Sourcepub fn source(&self) -> &Arc<PluginSource>
pub fn source(&self) -> &Arc<PluginSource>
Which plugin the custom value came from. This provides a direct reference to be able to get a plugin interface in order to make a call, when needed.
Sourcepub fn without_source(self) -> PluginCustomValue
pub fn without_source(self) -> PluginCustomValue
Unwrap the PluginCustomValueWithSource
, discarding the source.
Sourcepub fn add_source(value: &mut Box<dyn CustomValue>, source: &Arc<PluginSource>)
pub fn add_source(value: &mut Box<dyn CustomValue>, source: &Arc<PluginSource>)
Add a PluginSource
to the given CustomValue
if it is a PluginCustomValue
.
Sourcepub fn add_source_in(
value: &mut Value,
source: &Arc<PluginSource>,
) -> Result<(), ShellError>
pub fn add_source_in( value: &mut Value, source: &Arc<PluginSource>, ) -> Result<(), ShellError>
Add a PluginSource
to all PluginCustomValue
s within the value, recursively.
Sourcepub fn remove_source(value: &mut Box<dyn CustomValue>)
pub fn remove_source(value: &mut Box<dyn CustomValue>)
Remove a PluginSource
from the given CustomValue
if it is a
PluginCustomValueWithSource
. This will turn it back into a PluginCustomValue
.
Sourcepub fn remove_source_in(value: &mut Value) -> Result<(), ShellError>
pub fn remove_source_in(value: &mut Value) -> Result<(), ShellError>
Remove the PluginSource
from all PluginCustomValue
s within the value, recursively.
Sourcepub fn verify_source(
&self,
span: Span,
source: &PluginSource,
) -> Result<(), ShellError>
pub fn verify_source( &self, span: Span, source: &PluginSource, ) -> Result<(), ShellError>
Check that self
came from the given source
, and return an error
if not.
Sourcepub fn verify_source_of_custom_value(
value: Spanned<&dyn CustomValue>,
source: &PluginSource,
) -> Result<(), ShellError>
pub fn verify_source_of_custom_value( value: Spanned<&dyn CustomValue>, source: &PluginSource, ) -> Result<(), ShellError>
Check that a CustomValue
is a PluginCustomValueWithSource
that came from the given
source
, and return an error if not.
Methods from Deref<Target = PluginCustomValue>§
Sourcepub fn name(&self) -> &str
pub fn name(&self) -> &str
The name of the type of the custom value as defined by the plugin (type_name()
)
Sourcepub fn data(&self) -> &[u8] ⓘ
pub fn data(&self) -> &[u8] ⓘ
The bincoded representation of the custom value on the plugin side
Sourcepub fn notify_on_drop(&self) -> bool
pub fn notify_on_drop(&self) -> bool
True if the custom value should notify the source if all copies of it are dropped.
Sourcepub fn ref_count(&self) -> usize
pub fn ref_count(&self) -> usize
Count the number of shared copies of this PluginCustomValue
.
Sourcepub fn deserialize_to_custom_value(
&self,
span: Span,
) -> Result<Box<dyn CustomValue>, ShellError>
pub fn deserialize_to_custom_value( &self, span: Span, ) -> Result<Box<dyn CustomValue>, ShellError>
Deserialize a PluginCustomValue
into a Box<dyn CustomValue>
. This should only be done
on the plugin side.
Trait Implementations§
Source§impl Clone for PluginCustomValueWithSource
impl Clone for PluginCustomValueWithSource
Source§fn clone(&self) -> PluginCustomValueWithSource
fn clone(&self) -> PluginCustomValueWithSource
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl CustomValue for PluginCustomValueWithSource
impl CustomValue for PluginCustomValueWithSource
Source§fn type_name(&self) -> String
fn type_name(&self) -> String
describe
and in error
messages. This does not have to be the same as the name of the struct or enum, but
conventionally often is.Source§fn to_base_value(&self, span: Span) -> Result<Value, ShellError>
fn to_base_value(&self, span: Span) -> Result<Value, ShellError>
Source§fn follow_path_int(
&self,
self_span: Span,
index: usize,
path_span: Span,
) -> Result<Value, ShellError>
fn follow_path_int( &self, self_span: Span, index: usize, path_span: Span, ) -> Result<Value, ShellError>
Source§fn follow_path_string(
&self,
self_span: Span,
column_name: String,
path_span: Span,
) -> Result<Value, ShellError>
fn follow_path_string( &self, self_span: Span, column_name: String, path_span: Span, ) -> Result<Value, ShellError>
Source§fn partial_cmp(&self, other: &Value) -> Option<Ordering>
fn partial_cmp(&self, other: &Value) -> Option<Ordering>
std::cmp::PartialOrd
)Source§fn operation(
&self,
lhs_span: Span,
operator: Operator,
op_span: Span,
right: &Value,
) -> Result<Value, ShellError>
fn operation( &self, lhs_span: Span, operator: Operator, op_span: Span, right: &Value, ) -> Result<Value, ShellError>
Source§fn as_mut_any(&mut self) -> &mut dyn Any
fn as_mut_any(&mut self) -> &mut dyn Any
Source§fn notify_plugin_on_drop(&self) -> bool
fn notify_plugin_on_drop(&self) -> bool
true
here if you would like to be notified when all
copies of this custom value are dropped in the engine. Read moreSource§impl Debug for PluginCustomValueWithSource
impl Debug for PluginCustomValueWithSource
Source§impl Deref for PluginCustomValueWithSource
impl Deref for PluginCustomValueWithSource
Source§type Target = PluginCustomValue
type Target = PluginCustomValue
Source§fn deref(&self) -> &PluginCustomValue
fn deref(&self) -> &PluginCustomValue
Source§impl Drop for PluginCustomValueWithSource
impl Drop for PluginCustomValueWithSource
Auto Trait Implementations§
impl Freeze for PluginCustomValueWithSource
impl !RefUnwindSafe for PluginCustomValueWithSource
impl Send for PluginCustomValueWithSource
impl Sync for PluginCustomValueWithSource
impl Unpin for PluginCustomValueWithSource
impl !UnwindSafe for PluginCustomValueWithSource
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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 moreSource§impl<T> IntoSpanned for T
impl<T> IntoSpanned for T
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more