Module dochy_core::structs [−][src]
Structs
HashMt | |
JsonDir | |
LinkedMap | |
LinkedMapIter | |
LinkedMapIterMut | |
LinkedMapUnsafeIter | &LinkedMapから as *const _ as *mut _でポインタを取り出しても良い。 next_mutのようなmut系を呼び出さなければ、&mut参照はされないので安全。もちろん mut 系を呼び出したらアウト これによって、これをベースにLinkedMapIterが作れる |
ListDefObj | |
MetaParam | |
MetaTable | |
MetaTables | |
MutInnerList | |
MutItem | たとえばキャラクターAとキャラクターBの間で出来事Cが起こったとする。 キャラクターAのIDをa, BのIDをbとする。 グローバルの出来事リストに出来事Cを記録し、next_idからidを振り、そのidをcとする。その出来事のオブジェクトにはaとbもvaluesに記録されている。 AのRelationリストのID bの項目にアクセスし、なければ作成し、insertする。 AのRelationリストbにある出来事ID保持用のlistに出来事ID cを記憶しておく。ID保持用のlistは、idだけで中身のないオブジェクトを集めたlistだ。 同様にキャラクターBのRelationリストaの出来事リストにも、出来事ID cを記録。 これにより、たとえば出来事Cを削除したい場合、Cにあるaとbを読み、AのbにあるID cのものを削除、 Bのaにあるcも削除、さらに出来事リストからCも削除すると、全部消える。 AとBとの間で何があったかの一覧がほしいなら、Aのbにアクセスし、出来事IDリストを取得、出来事リストからid検索し、出来事を取得、という感じになる。 出来事リストのIDはnext_id方式により、時系列に積み上がっていくため、何年何月に起きた出来事はID x から y という情報があれば、 その間の出来事を全部調べたり、一定期間が過ぎた出来事データのうち重要じゃないものは消す、といった処理もできる。 キャラクターBを削除したい場合、他のキャラクターのRelationリストのbの部分を全部消し、BのRelationリストから取れる出来事IDを全部調べて 出来事リストから全部消す、といった感じで消していくことが可能だ。 |
MutList | 追加、削除、順番の変更等ができるリスト ConstListとMutListはstruct定義を見ると近い存在なので、まとめてもいいように思うかもしれないけれど、意味が全く別ものなので型を分けたほうが混乱が少ない。 |
RefDefMap | |
RefDefObj | |
RefSabValue | |
RootObject | |
RustFloatArray | |
RustIntArray | |
RustString |
Enums
ListDefValue | |
ListSabValue | |
MetaValue | |
NullOr | |
ParamType | |
Qv | |
QvType | |
RootValue | |
RustMemberType | |
RustParam | |
RustValue | |
UndefOr | |
VarType |
Traits
JsonFile |