Cooper.Op (Cooper v0.1.0)

Copy Markdown

One flattened leaf assignment: every assignment or block statement -- regardless of surface form, dotted path, or nested block -- resolves recursively into a list of these before merge ever runs, so the merge engine (Cooper.Merge) only ever deep-merges paths, never re-discovers which parts of two differently-shaped literals mean the same key.

Summary

Types

sigil()

@type sigil() :: :merge | :replace | :append | :remove | :delete

t()

@type t() :: %Cooper.Op{
  path: [String.t()],
  secret?: boolean(),
  sigil: sigil(),
  value: term()
}