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 |