Zongzi.Anchor.TripletMatch (zongzi v0.3.0)

Copy Markdown

Triplet anchor 结构的共享判定逻辑(NoteTriplet 与 ScoredHost 共用)。

Summary

Functions

使用当前三元组邻接与旧锚比对,返回 match_count 和新锚候选。

返回三元组对应的 SeqID 列表。

将 focus 洗成「左右均为 active(或 nil)」的三元组。

Types

triplet()

Functions

match(intervention, timeline)

@spec match(Zongzi.Intervention.t(), Zongzi.Timeline.t()) ::
  {:active, pos_integer(), triplet()}
  | {:tombstone, :merge | :delete}
  | {:tombstone, :delete}

使用当前三元组邻接与旧锚比对,返回 match_count 和新锚候选。

返回值:

  • {:active, match_count, {new_prev, current, new_next}}
  • {:tombstone, :merge | :delete}

referenced_seqs(arg)

@spec referenced_seqs(triplet()) :: [Zongzi.Timeline.SeqID.t()]

返回三元组对应的 SeqID 列表。

scrub_triplet(timeline, focus)

@spec scrub_triplet(Zongzi.Timeline.t(), Zongzi.Timeline.SeqID.t()) ::
  {:ok,
   {Zongzi.Timeline.SeqID.t() | nil, Zongzi.Timeline.SeqID.t(),
    Zongzi.Timeline.SeqID.t() | nil}}
  | {:error, :not_active}

将 focus 洗成「左右均为 active(或 nil)」的三元组。