|
Apparatus
Version 1.23
ECS data-oriented workflow for Unreal Engine.
|
The main container for the subjects' traits. More...
#include <Chunk.h>


Public Types | |
| enum | { InvalidId = 0 , FirstId = 1 , InvalidTraitLineIndex = -1 , InvalidSlotIndex = FSubjectInfo::InvalidSlotIndex } |
Public Types inherited from IIterable | |
| enum | { InvalidSlotIndex = -1 } |
Public Member Functions | |
| const FTraitmark & | GetTraitmark () const |
| Get the traitmark of the chunk. | |
| AMechanism * | GetOwner () const |
| Get the owning mechanism of the chunk. | |
| bool | IsSlotLocked (const int32 SlotIndex) const |
| Check if the subject at specified place is locked. | |
| void | Reserve (const int32 InCapacity) |
| Reserve a certain capacity within the chunk. | |
| template<typename ChunkItT > | |
| ChunkItT | Begin (const FFilter &Filter, const int32 Offset=0) |
| Begin iterating the chunk. | |
| template<typename ChunkItT > | |
| ChunkItT | End () const |
| The ending iterator. | |
| EApparatusStatus | SetTraitAt (const int32 SlotIndex, const UScriptStruct *const TraitType, const void *const InTraitData) |
| Set the trait for the chunk's subject by its type identifier. | |
| EApparatusStatus | FetchTraitsPtrs (const int32 SlotIndex, const TArray< int32 > &Mapping, void **OutTraits) |
| Fetch the traits for a subject into a traits data array. | |
| EApparatusStatus | OverwriteTraits (const int32 SrcSlotIndex, class UChunk *const DstChunk, const int32 DstSlotIndex) const |
| Copy the traits from this chunk to another one, given subject indices. | |
| EApparatusStatus | OverwriteTraits (const int32 SrcSlotIndex, class UChunk *const DstChunk, const int32 DstSlotIndex) |
| Copy the traits from this chunk to another one, given subject indices. | |
| template<EParadigm Paradigm = EParadigm::DefaultInternal> | |
| TOutcome< Paradigm > | SwapTraits (const int32 SlotIndex, class UChunk *OtherChunk, const int32 OtherSlotIndex, const bool bClearMissing=true) |
| Swap the traits from this chunk with another one, given subject indices. | |
| EApparatusStatus | OverwriteTraits (const int32 SrcSlotIndex, const int32 DstSlotIndex) |
| Copy the traits within the chunk, given subject indices. | |
| bool | Matches (const FFilter &Filter) const override |
| Check whether the chunk matches a filter. | |
| bool | Check () const |
| Check the validity of the chunk. | |
| FString | ToString () const |
| Get a textural representation of the chunk. | |
Slots | |
| const FChunkSlot & | At (const int32 SlotIndex) const |
| Get a slot at a certain position. | |
| FChunkSlot & | At (const int32 SlotIndex) |
| Get a slot at a certain position. | |
| const FChunkSlot & | operator[] (const int32 SlotIndex) const |
| Get a slot at a certain position. | |
| FChunkSlot & | operator[] (const int32 SlotIndex) |
| Get a slot at a certain position. | |
| bool | IsStaleAt (const int32 SlotIndex) const |
| Check if a slot is stale at a certain position. | |
Subjects | |
| template<typename SubjectHandleT = FSubjectHandle> | |
| SubjectHandleT | SubjectAt (const int32 SlotIndex) const |
| Get a subject at a specific slot index. | |
| const FFingerprint & | SubjectFingerprintAt (const int32 SlotIndex) const |
| Get a subject's fingerprint at a specific slot index. | |
| EFlagmark | SubjectFlagmarkAt (const int32 SlotIndex) const |
| Get a subject's flagmark at a specific slot index. | |
| bool | HasSubjectFlagAt (const int32 SlotIndex, const EFlagmarkBit Flag) const |
| Check a subject's flag at a specific slot index. | |
| template<EParadigm Paradigm = EParadigm::Safe> | |
| EFlagmark | SetSubjectFlagmarkAt (const int32 SlotIndex, const EFlagmark Flagmark) const |
| Set a subject's flagmark at a specific slot index. | |
| template<EParadigm Paradigm = EParadigm::Safe> | |
| EFlagmark | SetSubjectFlagmarkMaskedAt (const int32 SlotIndex, const EFlagmark Flagmark, const EFlagmark Mask) |
| Set the masked flagmark for the subject. | |
| template<EParadigm Paradigm = EParadigm::Safe> | |
| bool | SetSubjectFlagAt (const int32 SlotIndex, const EFlagmarkBit Flag, const bool bState=true) const |
| Set a subject's flag at a specific slot index. | |
| template<EParadigm Paradigm = EParadigm::Safe> | |
| bool | ToggleSubjectFlagAt (const int32 SlotIndex, const EFlagmarkBit Flag) const |
| Toggle a subject's flag at a specific slot index. | |
Trait Lines | |
| UScriptStruct * | TraitLineTypeAt (const int32 LineIndex) const |
| Get the type of a trait line. | |
| int32 | TraitLinesNum () const |
| The number of trait lines in the chunk. | |
| int32 | TraitLineTraitSizeAt (const int32 LineIndex) const |
| Get the size of a trait given its line index. | |
| const FScriptStructArray & | GetTraitLine (UScriptStruct *const TraitType) const |
| Get a trait line by the type of its element. | |
| template<typename T > | |
| const FScriptStructArray & | GetTraitLine () const |
| Get a trait line by the type of its element. | |
| const FScriptStructArray & | TraitLineAt (const int32 LineIndex) const |
| Get a trait line at a specific index. | |
| FScriptStructArray & | TraitLineAt (const int32 LineIndex) |
| Get a trait line at a specific index. | |
| bool | HasTraitLine (UScriptStruct *const TraitType) const |
| Check if a trait line is within the chunk. | |
| const FScriptStructArray * | FindTraitLine (UScriptStruct *const TraitType) const |
| Find a trait line by the type of its element. | |
| FScriptStructArray * | FindTraitLine (UScriptStruct *const TraitType) |
| Find a trait line by the type of its element. | |
| template<typename T > | |
| std::enable_if< IsTraitType< T >(), constFScriptStructArray * >::type | FindTraitLine () const |
| Find a trait line by the type of its element. | |
| template<typename T > | |
| std::enable_if< IsTraitType< T >(), FScriptStructArray * >::type | FindTraitLine () |
| Find a trait line by the type of its element. | |
| int32 | TraitLineIndexOf (UScriptStruct *const TraitType) const |
| Get the trait line index of a trait. | |
| template<typename T > | |
| constexpr int32 | TraitLineIndexOf () const |
| Get the trait line index of a trait. | |
Traits Access | |
| EApparatusStatus | TraitAt (const int32 SlotIndex, const int32 LineIndex, void *const OutTraitData, bool bTraitDataInitialized=true) const |
| Copy a trait's data given a subject and line indices to a supplied data buffer. | |
| template<typename T > | |
| T | TraitAt (const int32 SlotIndex, const int32 LineIndex) const |
| Get a copy of a trait given subject's index and a line index. | |
| EApparatusStatus | TraitAt (const int32 SlotIndex, const UScriptStruct *const TraitType, void *const OutTraitData, const bool bTraitDataInitialized=true) const |
| Copy a trait from the chunk's subject by its type identifier. | |
| template<typename T > | |
| T | TraitAtHinted (const int32 SubjectIndex, int32 LineIndexHint) const |
| Get a copy of a trait given subject's index and a line index hint. | |
| EApparatusStatus | TraitAtHinted (const int32 SubjectIndex, UScriptStruct *const TraitType, int32 LineIndexHint, void *const OutTraitData, bool bTraitDataInitialized=true) const |
| Copy a trait's data given a subject and line indices to a supplied data buffer. | |
| template<typename T > | |
| T | TraitAt (const int32 SlotIndex) const |
| Get a copy of a trait from the chunk's subject by its type identifier. | |
Traits Data Access | |
| const void * | TraitPtrAt (const int32 SlotIndex, const int32 LineIndex) const |
| Get the trait data pointer given subject's index and a line index. | |
| void * | TraitPtrAt (const int32 SlotIndex, const int32 LineIndex) |
| Get the trait data pointer given subject's index and a line index. | |
| void * | TraitPtrAt (UScriptStruct *const TraitTypeCheck, const int32 SlotIndex, const int32 LineIndex) |
| Get the trait data pointer given subject's index and a line index. | |
| template<typename T > | |
| const T & | TraitRefAt (const int32 SlotIndex, const int32 LineIndex) const |
| Get a trait reference given subject's index and a line index. | |
| template<typename T > | |
| T & | TraitRefAt (const int32 SlotIndex, const int32 LineIndex) |
| Get the trait reference given subject's index and a line index. | |
| template<typename T > | |
| const T & | TraitRefAtHinted (const int32 SlotIndex, int32 LineIndexHint) const |
| Get the trait reference given subject's index and a line index hint. | |
| template<typename T > | |
| T & | TraitRefAtHinted (const int32 SlotIndex, int32 LineIndexHint) |
| Get the trait reference given subject's index and a line index hint. | |
| const void * | TraitPtrAt (const int32 SlotIndex, const UScriptStruct *const TraitType) const |
| Get the read-only trait data pointer from the chunk's subject by its type identifier. | |
| void * | TraitPtrAt (const int32 SlotIndex, UScriptStruct *const TraitType) |
| Get the trait data pointer from the chunk's subject by its type identifier. | |
| template<typename T > | |
| const T * | TraitPtrAt (const int32 SlotIndex) const |
| Get the trait data pointer from the chunk's subject by its type identifier. | |
| template<typename T > | |
| T * | TraitPtrAt (const int32 SlotIndex) |
| Get the trait data pointer from the chunk's subject by its type identifier. | |
| template<typename T > | |
| const T & | TraitRefAt (const int32 SlotIndex) const |
| Get a read-only trait reference from the chunk's subject by its type identifier. | |
| template<typename T > | |
| T & | TraitRefAt (const int32 SlotIndex) |
| Get a trait reference from the chunk's subject by its type identifier. | |
| const void * | TraitPtrAtHinted (const int32 SlotIndex, UScriptStruct *const TraitType, int32 LineIndexHint) const |
| Get the trait pointer given subject's index and a line index hint. | |
| void * | TraitPtrAtHinted (const int32 SlotIndex, UScriptStruct *const TraitType, int32 LineIndexHint) |
| Get the trait pointer given subject's index and a line index hint. | |
| template<typename T > | |
| const T * | TraitPtrAtHinted (const int32 SlotIndex, int32 LineIndexHint) const |
| Get the trait pointer given subject's index and a line index hint. | |
| template<typename T > | |
| T * | TraitPtrAtHinted (const int32 SlotIndex, int32 LineIndexHint) |
| Get the trait pointer given subject's index and a line index hint. | |
Public Member Functions inherited from IIterable | |
| AMechanism * | GetOwner () const |
| Get the owning mechanism of the iterable. | |
| bool | IsLocked () const |
| Check if the sequence is currently locked. | |
| bool | IsLiquidLocked () const |
| Check if the iterable is currently locked in a liquid manner. | |
| bool | IsSolidLocked () const |
| Check if the iterable is currently locked in a solid manner. | |
| bool | IsSolid () const |
| Check if the iterable is currently solid. | |
| bool | HasQueuedForRemoval () const |
| Check if there are any slots marked for removal within the iterable. | |
| int32 | Num () const |
| Get the total number of slots currently in the iterable. | |
| int32 | IterableNum () const |
| Get the current number of elements valid for iterating. | |
| virtual bool | Matches (const FFilter &InFilter) const |
| Check whether the sequence matches a filter. | |
| template<bool bInSolid> | |
| EApparatusStatus | Lock () const |
| Lock the iterable, preparing it for the iterating process. | |
| EApparatusStatus | LockLiquid () const |
| Lock the iterable in a liquid manner. | |
| EApparatusStatus | LockSolid () const |
| Lock the iterable in a solid manner. | |
| template<bool bInSolid> | |
| EApparatusStatus | Unlock () const |
| Unlock the iterable, applying the pending changes. | |
Static Public Member Functions | |
| static UChunk * | New (AMechanism *const Owner, const int32 Id, const FTraitmark &InTraitmark) |
| Create a new chunk instance. | |
| static bool | IsValidChunk (const UChunk *const InChunk) |
Protected Member Functions | |
| void | BeginDestroy () override |
| Finalize the chunk, freeing all of its resources. | |
| EApparatusStatus | DoUnlock (const bool bWasSolid) const override |
| Unlock the iterable, applying the pending changes. | |
Protected Member Functions inherited from IIterable | |
| void | EnqueueForRemoval (const int32 SlotIndex) const |
| Enqueue a slot for removal. | |
| bool | DequeueFromRemoved (int32 &OutSlotIndex) const |
| Dequeue a slot from being removed. | |
| int32 | DequeueFromRemoved () const |
| Dequeue a slot from being removed. | |
| virtual EApparatusStatus | DoUnlock (const bool bWasSolid) const |
| Unlock the iterable, applying the pending changes. | |
Friends | |
| struct | FSubjectInfo |
| struct | FCommonSubjectHandle |
| struct | FMechanicInfo |
| struct | FFingerprint |
| class | AMechanism |
| class | UMachine |
| template<typename SubjectHandleT > | |
| struct | TChunkIt |
| template<typename ChunkItT , typename BeltItT , EParadigm Paradigm> | |
| struct | TChain |
Additional Inherited Members | |
Protected Attributes inherited from IIterable | |
| int32 | Count = 0 |
| The logical (un-buffered) number of slots in the belt that are actually candidates for being iterated once the iterable is locked. | |
| std::atomic< int32 > | IterableCount {-1} |
| A number of currently iterable slots, excluding those, that were added before the unlocking. | |
The main container for the subjects' traits.
| anonymous enum |
|
inline |
Get a slot at a certain position.
|
inline |
Get a slot at a certain position.
Constant version.
|
inline |
Begin iterating the chunk.
| ChunkItT | The type of the iterator to use. |
| Filter | The filter to iterate under. |
| Offset | The slot offset to begin with. |
|
overrideprotected |
Finalize the chunk, freeing all of its resources.
| bool UChunk::Check | ( | ) | const |
Check the validity of the chunk.
|
overrideprotectedvirtual |
Unlock the iterable, applying the pending changes.
Must be implemented in the descendants.
The procedure is guaranteed to be executed under a locked critical section for this chunk.
| bWasSolid | Should the iterable be unlocked from a solid state. |
Reimplemented from IIterable.
|
inline |
The ending iterator.
| ChunkItT | The type of the chunk iterator. |
| EApparatusStatus UChunk::FetchTraitsPtrs | ( | const int32 | SlotIndex, |
| const TArray< int32 > & | Mapping, | ||
| void ** | OutTraits | ||
| ) |
Fetch the traits for a subject into a traits data array.
| SlotIndex | The index of the subject within the belt. |
| Mapping | The mapping to use while fetching. |
| OutTraits | Initialized traits data to fill. |
|
inline |
Find a trait line by the type of its element.
Templated version.
| T | The type of the traits to search for. |
|
inline |
Find a trait line by the type of its element.
Templated constant version.
| T | The type of the traits to search for. |
|
inline |
Find a trait line by the type of its element.
| TraitType | The type of the traits to search for. |
|
inline |
Find a trait line by the type of its element.
Constant version.
| TraitType | The type of the traits to search for. |
| AMechanism * UChunk::GetOwner | ( | ) | const |
Get the owning mechanism of the chunk.
|
inline |
Get a trait line by the type of its element.
Templated version.
| T | The type of the trait to get by. |
|
inline |
Get a trait line by the type of its element.
| TraitType | The type of the trait to get by. |
|
inline |
Get the traitmark of the chunk.
|
inline |
Check a subject's flag at a specific slot index.
The operation is thread-safe and atomic.
The method is cache efficient during the iterating process, cause the flagmarks are stored within the chunk slots.
| SlotIndex | The index of the subject slot to examine. |
| Flag | The flag to test. |
|
inline |
Check if a trait line is within the chunk.
| TraitType | The type of the trait to check against. May not be a nullptr. |
|
inline |
Check if the subject at specified place is locked.
|
inline |
Check if a slot is stale at a certain position.
Stale slots should generally be skipped during the iterating process.
| SlotIndex | The index of the subject slot to examine. |
Check whether the chunk matches a filter.
| Filter | A filter to match. |
Reimplemented from IIterable.
|
inlinestatic |
Create a new chunk instance.
|
inline |
Get a slot at a certain position.
|
inline |
Get a slot at a certain position.
Constant version.
| EApparatusStatus UChunk::OverwriteTraits | ( | const int32 | SrcSlotIndex, |
| class UChunk *const | DstChunk, | ||
| const int32 | DstSlotIndex | ||
| ) |
Copy the traits from this chunk to another one, given subject indices.
If the trait is missing within the destination chunk it is safely skipped.
| SrcSlotIndex | The subject's index within the source chunk. |
| DstChunk | The destination chunk to copy to. May the same as the source (this). |
| DstSlotIndex | The subject's index within the destination chunk. |
| EApparatusStatus UChunk::OverwriteTraits | ( | const int32 | SrcSlotIndex, |
| class UChunk *const | DstChunk, | ||
| const int32 | DstSlotIndex | ||
| ) | const |
Copy the traits from this chunk to another one, given subject indices.
Constant version.
If the trait is missing within the destination chunk it is safely skipped.
| SrcSlotIndex | The subject's index within the source chunk. |
| DstChunk | The destination chunk to copy to. |
| DstSlotIndex | The subject's index within the destination chunk. |
|
inline |
Copy the traits within the chunk, given subject indices.
| SrcSlotIndex | The subject's index to copy from. |
| DstSlotIndex | The subject's index to copy to. |
|
inline |
Reserve a certain capacity within the chunk.
|
inline |
Set a subject's flag at a specific slot index.
The operation is thread-safe and atomic.
The method is cache efficient during the iterating process, cause the flagmarks are stored within the chunk slots.
| Paradigm | The safety paradigm to utilize. |
| SlotIndex | The index of the subject slot to examine. |
| Flag | The flag to set or reset. |
| bState | The state of the flag to set to. |
|
inline |
Set a subject's flagmark at a specific slot index.
The operation is thread-safe and atomic.
The method is cache efficient during the iterating process, cause the flagmarks are stored within the chunk slots.
| Paradigm | The safety paradigm to utilize. |
| SlotIndex | The index of the subject slot to examine. |
| Flagmark | The flagmark to set to. |
|
inline |
Set the masked flagmark for the subject.
This operation is atomic and thread-safe.
All of the system-level flags get removed from the mask argument prior to application.
The method is cache efficient during the iterating process, cause the flagmarks are stored within the chunk slots.
| Paradigm | The safety paradigm to utilize. |
| SlotIndex | The index of the subject slot to examine. |
| Flagmark | The new flagmark to set to. |
| Mask | The mask to apply on the flagmark bits to set. |
|
inline |
Set the trait for the chunk's subject by its type identifier.
| SlotIndex | The index of the subject within the chunk. |
| TraitType | The type of the trait to set. |
| InTraitData | The trait data to set. |
|
inline |
Get a subject at a specific slot index.
| SubjectHandleT | The type of the handle to acquire. |
| SlotIndex | The index of the subject to get. |
|
inline |
Get a subject's fingerprint at a specific slot index.
The method is cache efficient during the iterating process, cause the fingerprints are stored within the chunk slots.
| SlotIndex | The index of the subject slot to examine. |
|
inline |
Get a subject's flagmark at a specific slot index.
The operation is thread-safe and atomic.
The method is cache efficient during the iterating process, cause the flagmarks are stored within the chunk slots.
| SlotIndex | The index of the subject slot to examine. |
| TOutcome< Paradigm > UChunk::SwapTraits | ( | const int32 | SlotIndex, |
| class UChunk * | OtherChunk, | ||
| const int32 | OtherSlotIndex, | ||
| const bool | bClearMissing = true |
||
| ) |
Swap the traits from this chunk with another one, given subject indices.
If the trait is missing within the destination chunk it is safely skipped.
| Paradigm | The paradigm to work under. |
| SlotIndex | The subject's index within the source chunk. |
| OtherChunk | The destination chunk to copy to. May the same as the source (this). |
| OtherSlotIndex | The subject's index within the destination chunk. |
| bClearMissing | Clear the original traits missing within the other chunk. |
|
inline |
Toggle a subject's flag at a specific slot index.
The operation is thread-safe and atomic.
The method is cache efficient during the iterating process, cause the flagmarks are stored within the chunk slots.
| Paradigm | The safety paradigm to utilize. |
| SlotIndex | The index of the subject slot to examine. |
| Flag | The flag to toggle. |
|
inline |
Get a textural representation of the chunk.
Get a copy of a trait from the chunk's subject by its type identifier.
| T | The type of the trait to copy. |
|
inline |
Get a copy of a trait given subject's index and a line index.
Statically typed version.
| T | The type of the trait to get. |
| SlotIndex | An index of the subject. |
| LineIndex | An index of the line. |
|
inline |
Copy a trait's data given a subject and line indices to a supplied data buffer.
| [in] | SlotIndex | The index of the subject which trait to copy. |
| [in] | LineIndex | The index of the trait line. |
| [out] | OutTraitData | The output buffer to copy to. |
| [in] | bTraitDataInitialized | Is the trait data initialized or a raw buffer? |
|
inline |
Copy a trait from the chunk's subject by its type identifier.
| [in] | SlotIndex | The index of the subject within the chunk. |
| [in] | TraitType | The trait type identifier. |
| [out] | OutTraitData | The trait data receiver. |
| [in] | bTraitDataInitialized | Is the OutTraitData actually initialized? |
|
inline |
Get a copy of a trait given subject's index and a line index hint.
This is a low-level method without the remapping.
| T | The type of the trait to get. |
| SubjectIndex | The index of the subject. Must be a valid one. |
| LineIndexHint | The hinting index of the trait line. May be a UChunk::InvalidTraitLineIndex for automatic line search. |
|
inline |
Copy a trait's data given a subject and line indices to a supplied data buffer.
| SubjectIndex | The index of the subject which trait to copy. Must be a valid one. |
| TraitType | The type of the trait to get. |
| LineIndexHint | The hinting index of the trait line. May be a UChunk::InvalidTraitLineIndex for automatic line search. |
| OutTraitData | The output buffer to copy to. |
| bTraitDataInitialized | Is the trait data initialized or a raw buffer? |
|
inline |
Get a trait line at a specific index.
| LineIndex | An index of the line. |
|
inline |
Get a trait line at a specific index.
Constant version.
| LineIndex | An index of the line. |
|
inlineconstexpr |
Get the trait line index of a trait.
INDEX_NONE will be returned in such case.| T | The type of the trait to find. |
INDEX_NONE, if there is no such trait within the chunk.
|
inline |
Get the trait line index of a trait.
| TraitType | The type of the trait to find. |
INDEX_NONE, if there is no such trait within the chunk.
|
inline |
The number of trait lines in the chunk.
|
inline |
Get the size of a trait given its line index.
| LineIndex | The index of the line. |
|
inline |
Get the type of a trait line.
| LineIndex | An index of the line. |
Get the trait data pointer from the chunk's subject by its type identifier.
Templated version.
| T | The trait type identifier. |
| SlotIndex | The index of the subject within the chunk. |
Get the trait data pointer from the chunk's subject by its type identifier.
Templated constant version.
| T | The trait type identifier. |
| SlotIndex | The index of the subject within the chunk. |
|
inline |
Get the trait data pointer given subject's index and a line index.
Generic mutable data version.
| SlotIndex | An index of the subject slot. |
| LineIndex | An index of the line. |
|
inline |
Get the trait data pointer given subject's index and a line index.
Generic constant data version.
| SlotIndex | An index of the subject. |
| LineIndex | An index of the line. |
|
inline |
Get the read-only trait data pointer from the chunk's subject by its type identifier.
Dynamically-typed constant data version.
| SlotIndex | The index of the subject within the chunk. |
| TraitType | The trait type identifier. * |
|
inline |
Get the trait data pointer from the chunk's subject by its type identifier.
Dynamically-typed mutable data version.
| SlotIndex | The index of the subject within the chunk. |
| TraitType | The trait type identifier. |
|
inline |
Get the trait data pointer given subject's index and a line index.
Generic mutable data version.
| TraitTypeCheck | The type to check. |
| SlotIndex | An index of the subject slot. |
| LineIndex | An index of the line. |
|
inline |
Get the trait pointer given subject's index and a line index hint.
Templated version.
| T | The type of the trait to get. |
| SlotIndex | The index of the subject. |
| LineIndexHint | The hint for the index of the line. |
|
inline |
Get the trait pointer given subject's index and a line index hint.
Constant templated version.
| T | The type of the trait to get. |
| SlotIndex | The index of the subject. |
| LineIndexHint | The hint for the index of the line. |
|
inline |
Get the trait pointer given subject's index and a line index hint.
| SlotIndex | The index of the subject. |
| TraitType | The type of the trait to get. |
| LineIndexHint | The hint for the index of the line. |
|
inline |
Get the trait pointer given subject's index and a line index hint.
Constant version.
| SlotIndex | The index of the subject. |
| TraitType | The type of the trait to get. |
| LineIndexHint | The hint for the index of the line. |
Get a trait reference from the chunk's subject by its type identifier.
Statically-typed mutable version.
| T | The type of the trait to get. |
| SlotIndex | The index of the subject within the chunk. |
Get a read-only trait reference from the chunk's subject by its type identifier.
Statically-typed constant version.
| T | The type of the trait to get. |
| SlotIndex | The index of the subject within the chunk. |
|
inline |
Get the trait reference given subject's index and a line index.
Statically typed mutable version.
| T | The type of the trait to get. |
| SlotIndex | An index of the subject. |
| LineIndex | An index of the line. |
|
inline |
Get a trait reference given subject's index and a line index.
Statically typed constant version.
| T | The type of the trait to get. |
| SlotIndex | An index of the subject. |
| LineIndex | An index of the line. |
|
inline |
Get the trait reference given subject's index and a line index hint.
| T | The type of the trait to get. |
| SlotIndex | The index of the subject. |
| LineIndexHint | The hint for the index of the line. |
|
inline |
Get the trait reference given subject's index and a line index hint.
Constant version.
| T | The type of the trait to get. |
| SlotIndex | The index of the subject. |
| LineIndexHint | The hint for the index of the line. |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |