defmodule Pi.Protocol.Tool.AST.ReplaceRequest do
@moduledoc "Arguments for AST replacement."
use JSONCodec, fast_path: :json
defstruct [
:pattern,
:replacement,
path: nil,
inside: nil,
not_inside: nil,
allow_broad: false,
limit: nil,
dry_run: false
]
@type t :: %__MODULE__{
pattern: String.t(),
replacement: String.t(),
path: String.t() | nil,
inside: String.t() | nil,
not_inside: String.t() | nil,
allow_broad: boolean(),
limit: non_neg_integer() | nil,
dry_run: boolean()
}
codec(:not_inside, as: "notInside")
codec(:allow_broad, as: "allowBroad")
codec(:dry_run, as: "dryRun")
end