pub struct FtsIndex<B>where
B: FtsBackend,{ /* private fields */ }Expand description
Full-text search index generic over storage backend.
Indexing, search, and highlighting use the FtsBackend storage contract.
Writes accumulate in an in-memory Memtable, one state per index.
Threshold-triggered flushing writes each index’s postings to an
immutable segment of that index through the backend.
Queries merge the active memtable with stored segments.
The backend determines segment durability.
MemoryGovernor enforces per-engine memory budgets on large
allocations (compaction, segment merge, query term collection).
Implementations§
Source§impl<B> FtsIndex<B>where
B: FtsBackend,
impl<B> FtsIndex<B>where
B: FtsBackend,
Source§impl<B> FtsIndex<B>where
B: FtsBackend,
impl<B> FtsIndex<B>where
B: FtsBackend,
Sourcepub fn set_collection_analyzer(
&self,
database_id: u64,
tid: u64,
collection: &str,
analyzer_name: &str,
) -> Result<(), <B as FtsBackend>::Error>
pub fn set_collection_analyzer( &self, database_id: u64, tid: u64, collection: &str, analyzer_name: &str, ) -> Result<(), <B as FtsBackend>::Error>
Set the analyzer for a collection. Persists to backend metadata.
Sourcepub fn set_collection_language(
&self,
database_id: u64,
tid: u64,
collection: &str,
lang_code: &str,
) -> Result<(), <B as FtsBackend>::Error>
pub fn set_collection_language( &self, database_id: u64, tid: u64, collection: &str, lang_code: &str, ) -> Result<(), <B as FtsBackend>::Error>
Set the language for a collection. Persists to backend metadata.
Sourcepub fn set_collection_fuzzy(
&self,
database_id: u64,
tid: u64,
collection: &str,
fuzzy: bool,
) -> Result<(), <B as FtsBackend>::Error>
pub fn set_collection_fuzzy( &self, database_id: u64, tid: u64, collection: &str, fuzzy: bool, ) -> Result<(), <B as FtsBackend>::Error>
Set whether searches over this collection fall back to fuzzy (Levenshtein) matching by default. Persists to backend metadata.
Sourcepub fn get_collection_fuzzy(
&self,
database_id: u64,
tid: u64,
collection: &str,
) -> Result<bool, <B as FtsBackend>::Error>
pub fn get_collection_fuzzy( &self, database_id: u64, tid: u64, collection: &str, ) -> Result<bool, <B as FtsBackend>::Error>
Whether this collection defaults to fuzzy matching. false when unset.
Sourcepub fn get_collection_analyzer(
&self,
database_id: u64,
tid: u64,
collection: &str,
) -> Result<Option<String>, <B as FtsBackend>::Error>
pub fn get_collection_analyzer( &self, database_id: u64, tid: u64, collection: &str, ) -> Result<Option<String>, <B as FtsBackend>::Error>
Get the configured analyzer name for a collection.
Sourcepub fn get_collection_language(
&self,
database_id: u64,
tid: u64,
collection: &str,
) -> Result<Option<String>, <B as FtsBackend>::Error>
pub fn get_collection_language( &self, database_id: u64, tid: u64, collection: &str, ) -> Result<Option<String>, <B as FtsBackend>::Error>
Get the configured language for a collection.
Source§impl<B> FtsIndex<B>where
B: FtsBackend,
impl<B> FtsIndex<B>where
B: FtsBackend,
Sourcepub fn read_fieldnorm<'a>(
&self,
database_id: u64,
tid: u64,
index: impl Into<IndexScope<'a>>,
doc_id: Surrogate,
) -> Result<Option<u32>, <B as FtsBackend>::Error>
pub fn read_fieldnorm<'a>( &self, database_id: u64, tid: u64, index: impl Into<IndexScope<'a>>, doc_id: Surrogate, ) -> Result<Option<u32>, <B as FtsBackend>::Error>
Get the fieldnorm (SmallFloat-encoded doc length) for a doc.
Returns the decoded approximate u32 length, or None if not stored.
Sourcepub fn write_fieldnorm<'a>(
&self,
database_id: u64,
tid: u64,
index: impl Into<IndexScope<'a>>,
doc_id: Surrogate,
doc_length: u32,
) -> Result<(), <B as FtsBackend>::Error>
pub fn write_fieldnorm<'a>( &self, database_id: u64, tid: u64, index: impl Into<IndexScope<'a>>, doc_id: Surrogate, doc_length: u32, ) -> Result<(), <B as FtsBackend>::Error>
Write a fieldnorm byte for a surrogate. Grows the array if needed.
Source§impl<B> FtsIndex<B>where
B: FtsBackend,
impl<B> FtsIndex<B>where
B: FtsBackend,
Sourcepub fn index_stats<'a>(
&self,
database_id: u64,
tid: u64,
index: impl Into<IndexScope<'a>>,
) -> Result<(u32, f32), <B as FtsBackend>::Error>
pub fn index_stats<'a>( &self, database_id: u64, tid: u64, index: impl Into<IndexScope<'a>>, ) -> Result<(u32, f32), <B as FtsBackend>::Error>
Get total document count and average document length of one index.
Returns (total_docs, avg_doc_len). If the index is empty,
returns (0, 1.0) to avoid division by zero.
Source§impl<B> FtsIndex<B>where
B: FtsBackend,
impl<B> FtsIndex<B>where
B: FtsBackend,
Sourcepub fn put_synonym_group(
&self,
database_id: u64,
tid: u64,
record: &SynonymGroupRecord,
) -> Result<(), <B as FtsBackend>::Error>
pub fn put_synonym_group( &self, database_id: u64, tid: u64, record: &SynonymGroupRecord, ) -> Result<(), <B as FtsBackend>::Error>
Persist a synonym group. Overwrites any existing group with the same name.
Sourcepub fn delete_synonym_group(
&self,
database_id: u64,
tid: u64,
name: &str,
) -> Result<bool, <B as FtsBackend>::Error>
pub fn delete_synonym_group( &self, database_id: u64, tid: u64, name: &str, ) -> Result<bool, <B as FtsBackend>::Error>
Delete a synonym group. Returns true if it existed.
Sourcepub fn get_synonym_group(
&self,
database_id: u64,
tid: u64,
name: &str,
) -> Result<Option<SynonymGroupRecord>, <B as FtsBackend>::Error>
pub fn get_synonym_group( &self, database_id: u64, tid: u64, name: &str, ) -> Result<Option<SynonymGroupRecord>, <B as FtsBackend>::Error>
Read a single synonym group by name. Returns None if not found or tombstoned.
Sourcepub fn list_synonym_groups(
&self,
database_id: u64,
tid: u64,
) -> Result<Vec<SynonymGroupRecord>, <B as FtsBackend>::Error>
pub fn list_synonym_groups( &self, database_id: u64, tid: u64, ) -> Result<Vec<SynonymGroupRecord>, <B as FtsBackend>::Error>
List all synonym group records for a tenant.
Sourcepub fn build_synonym_map_for_tenant(
&self,
_database_id: u64,
_tid: u64,
all_groups: &[SynonymGroupRecord],
) -> SynonymMap
pub fn build_synonym_map_for_tenant( &self, _database_id: u64, _tid: u64, all_groups: &[SynonymGroupRecord], ) -> SynonymMap
Build an in-memory SynonymMap from a slice of synonym group records.
Each term in every group maps to all other terms in that group
(bidirectional OR-expansion). Terms are analyzed with the default
analyzer so synonym keys match the stemmed tokens produced at query
time by search_with_params.
Sourcepub fn expand_query_with_synonyms(
&self,
database_id: u64,
tid: u64,
tokens: Vec<String>,
) -> Result<Vec<String>, <B as FtsBackend>::Error>
pub fn expand_query_with_synonyms( &self, database_id: u64, tid: u64, tokens: Vec<String>, ) -> Result<Vec<String>, <B as FtsBackend>::Error>
Load all synonym groups for a tenant and build the expansion map.
Called at FTS query time inside search_with_params to expand query
tokens before BM25 scoring.
Sourcepub fn expand_query_groups(
&self,
database_id: u64,
tid: u64,
tokens: Vec<String>,
) -> Result<Vec<Vec<String>>, <B as FtsBackend>::Error>
pub fn expand_query_groups( &self, database_id: u64, tid: u64, tokens: Vec<String>, ) -> Result<Vec<Vec<String>>, <B as FtsBackend>::Error>
Expand each analyzed query token into its word group: the token first, then its distinct synonyms. One group per token, in token order. A document matches a word when it holds any term of the group.
Source§impl<B> FtsIndex<B>where
B: FtsBackend,
impl<B> FtsIndex<B>where
B: FtsBackend,
Sourcepub fn index_document<'a>(
&self,
database_id: u64,
tid: u64,
index: impl Into<IndexScope<'a>>,
doc_id: Surrogate,
text: &str,
) -> Result<(), FtsIndexError<<B as FtsBackend>::Error>>
pub fn index_document<'a>( &self, database_id: u64, tid: u64, index: impl Into<IndexScope<'a>>, doc_id: Surrogate, text: &str, ) -> Result<(), FtsIndexError<<B as FtsBackend>::Error>>
Index a document’s text content into one index. The analyzer is the one bound to the index’s collection.
Returns Err(FtsIndexError::SurrogateOutOfRange) for Surrogate::ZERO
or values exceeding MAX_INDEXABLE_SURROGATE. Surrogate::ZERO is the
unassigned sentinel. Fieldnorm arrays use raw u32 surrogates as
indexes. Values near u32::MAX cause multi-GiB allocations. Runtime
bounds checks run before analysis and remain active in release builds.
Sourcepub fn index_analyzed_document<'a>(
&self,
database_id: u64,
tid: u64,
index: impl Into<IndexScope<'a>>,
doc_id: Surrogate,
tokens: &[String],
) -> Result<(), FtsIndexError<<B as FtsBackend>::Error>>
pub fn index_analyzed_document<'a>( &self, database_id: u64, tid: u64, index: impl Into<IndexScope<'a>>, doc_id: Surrogate, tokens: &[String], ) -> Result<(), FtsIndexError<<B as FtsBackend>::Error>>
Index ordered tokens from this collection’s current analyzer. Callers preserve token order and hold analyzer config stable through indexing.
Returns Err(FtsIndexError::SurrogateOutOfRange) for Surrogate::ZERO
or values exceeding MAX_INDEXABLE_SURROGATE.
Sourcepub fn remove_document<'a>(
&self,
database_id: u64,
tid: u64,
index: impl Into<IndexScope<'a>>,
doc_id: Surrogate,
) -> Result<(), FtsIndexError<<B as FtsBackend>::Error>>
pub fn remove_document<'a>( &self, database_id: u64, tid: u64, index: impl Into<IndexScope<'a>>, doc_id: Surrogate, ) -> Result<(), FtsIndexError<<B as FtsBackend>::Error>>
Remove a document from one index.
The memtable drops the document’s postings. Postings already flushed to a segment stay in that immutable segment, so the document enters the delete set of every segment the index holds: reads skip those postings and a merge drops them. The corpus stats lose the document’s length. A document the index does not hold changes nothing.
Source§impl<B> FtsIndex<B>where
B: FtsBackend,
impl<B> FtsIndex<B>where
B: FtsBackend,
Sourcepub fn flush_memtable<'a>(
&self,
database_id: u64,
tid: u64,
index: impl Into<IndexScope<'a>>,
) -> Result<(), FtsIndexError<<B as FtsBackend>::Error>>
pub fn flush_memtable<'a>( &self, database_id: u64, tid: u64, index: impl Into<IndexScope<'a>>, ) -> Result<(), FtsIndexError<<B as FtsBackend>::Error>>
Flush one index’s memtable postings to an immutable segment of that index in the backend. Every other index keeps its memtable state.
The postings leave the memtable only after the segment is written, so a failed flush loses nothing.
Calling this before serializing the index guarantees that all posting data written since the last spill threshold is captured in the backend’s segment storage rather than the in-memory memtable. Callers that checkpoint the index (e.g., NodeDB-Lite flush) must call this once per active index before persisting.
Sourcepub fn flush_all_memtables(
&self,
) -> Result<(), FtsIndexError<<B as FtsBackend>::Error>>
pub fn flush_all_memtables( &self, ) -> Result<(), FtsIndexError<<B as FtsBackend>::Error>>
Flush every index the memtable holds, each to its own segment.
Sourcepub fn purge_collection(
&self,
database_id: u64,
tid: u64,
collection: &str,
) -> Result<usize, <B as FtsBackend>::Error>
pub fn purge_collection( &self, database_id: u64, tid: u64, collection: &str, ) -> Result<usize, <B as FtsBackend>::Error>
Purge every index of a collection. Returns count of removed entries.
Sourcepub fn purge_tenant(
&self,
database_id: u64,
tid: u64,
) -> Result<usize, <B as FtsBackend>::Error>
pub fn purge_tenant( &self, database_id: u64, tid: u64, ) -> Result<usize, <B as FtsBackend>::Error>
Purge all entries for a (database_id, tenant) across every collection.
Source§impl<B> FtsIndex<B>where
B: FtsBackend,
impl<B> FtsIndex<B>where
B: FtsBackend,
Sourcepub fn new(backend: B, governor: Arc<MemoryGovernor>) -> FtsIndex<B>
pub fn new(backend: B, governor: Arc<MemoryGovernor>) -> FtsIndex<B>
Create a new FTS index with the given backend, default BM25 params, and a memory governor.
Sourcepub fn with_params(
backend: B,
params: Bm25Params,
governor: Arc<MemoryGovernor>,
) -> FtsIndex<B>
pub fn with_params( backend: B, params: Bm25Params, governor: Arc<MemoryGovernor>, ) -> FtsIndex<B>
Create a new FTS index with custom BM25 parameters and a memory governor.
Sourcepub fn with_memtable_config(
backend: B,
memtable: MemtableConfig,
governor: Arc<MemoryGovernor>,
) -> FtsIndex<B>
pub fn with_memtable_config( backend: B, memtable: MemtableConfig, governor: Arc<MemoryGovernor>, ) -> FtsIndex<B>
Create a new FTS index whose memtable spills at memtable thresholds.
Unreachable thresholds keep every posting in the memtable.
Sourcepub fn with_config(
backend: B,
params: Bm25Params,
memtable: MemtableConfig,
governor: Arc<MemoryGovernor>,
) -> FtsIndex<B>
pub fn with_config( backend: B, params: Bm25Params, memtable: MemtableConfig, governor: Arc<MemoryGovernor>, ) -> FtsIndex<B>
Create a new FTS index with custom BM25 parameters whose memtable
spills at memtable thresholds.
Sourcepub fn backend_mut(&mut self) -> &mut B
pub fn backend_mut(&mut self) -> &mut B
Mutable access to the underlying backend.
Source§impl<B> FtsIndex<B>where
B: FtsBackend,
impl<B> FtsIndex<B>where
B: FtsBackend,
Sourcepub fn search<'a>(
&self,
database_id: u64,
tid: u64,
index: impl Into<IndexScope<'a>>,
params: FtsSearchParams<'_>,
) -> Result<Vec<TextSearchResult>, FtsIndexError<<B as FtsBackend>::Error>>
pub fn search<'a>( &self, database_id: u64, tid: u64, index: impl Into<IndexScope<'a>>, params: FtsSearchParams<'_>, ) -> Result<Vec<TextSearchResult>, FtsIndexError<<B as FtsBackend>::Error>>
Search one index with explicit boolean mode, fuzzy, and optional prefilter.
Analyzer, fuzzy default, and synonyms come from the index’s collection. Postings and BM25 stats come from the index itself.
Supports NOT <term> and -<term> negation in the query string.
Returns Err(FtsIndexError::InvalidQuery) for ill-formed queries such
as NOT-only queries or unsupported parenthesised groups.
Sourcepub fn search_staged<'a>(
&self,
database_id: u64,
tid: u64,
index: impl Into<IndexScope<'a>>,
params: FtsSearchParams<'_>,
staged: Option<&StagedView>,
) -> Result<Vec<TextSearchResult>, FtsIndexError<<B as FtsBackend>::Error>>
pub fn search_staged<'a>( &self, database_id: u64, tid: u64, index: impl Into<IndexScope<'a>>, params: FtsSearchParams<'_>, staged: Option<&StagedView>, ) -> Result<Vec<TextSearchResult>, FtsIndexError<<B as FtsBackend>::Error>>
Self::search inside an open transaction: indexed documents the
transaction hides do not match, and its staged documents compete in
the same ranking under the same query semantics. prefilter bounds
staged documents too.
Results are ordered by score descending, then surrogate ascending.
Source§impl<B> FtsIndex<B>where
B: FtsBackend,
impl<B> FtsIndex<B>where
B: FtsBackend,
Sourcepub fn doc_scorer<'a>(
&'a self,
database_id: u64,
tid: u64,
index: impl Into<IndexScope<'a>>,
query: TextQuery<'_>,
eligible: Option<&SurrogateBitmap>,
staged: Option<StagedView>,
) -> Result<DocScorer<'a, B>, FtsIndexError<<B as FtsBackend>::Error>>
pub fn doc_scorer<'a>( &'a self, database_id: u64, tid: u64, index: impl Into<IndexScope<'a>>, query: TextQuery<'_>, eligible: Option<&SurrogateBitmap>, staged: Option<StagedView>, ) -> Result<DocScorer<'a, B>, FtsIndexError<<B as FtsBackend>::Error>>
A scorer of query against index. eligible is the set of rows the
reading query admits: the AND-mode fallback is decided over it, the
same way a search with that prefilter decides it. staged is the
open transaction’s view of the index.
Auto Trait Implementations§
impl<B> !Freeze for FtsIndex<B>
impl<B> !RefUnwindSafe for FtsIndex<B>
impl<B> !Sync for FtsIndex<B>
impl<B> Send for FtsIndex<B>where
B: Send,
impl<B> Unpin for FtsIndex<B>where
B: Unpin,
impl<B> UnsafeUnpin for FtsIndex<B>where
B: UnsafeUnpin,
impl<B> UnwindSafe for FtsIndex<B>where
B: UnwindSafe,
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.Source§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.