Foundry.Proposals.ImpactAnalysis (foundry v0.1.3)

Copy Markdown

Deterministic impact analysis computed by Foundry.Copilot.ImpactAnalyzer. Not LLM-generated — derived from static analysis of the diff and the project's context graph. See: ADR-012 §Impact Tab.

Summary

Functions

Callback implementation for Ash.Type.equal?/2.

Validates that the keys in the provided input are valid for at least one action on the resource.

Same as input/1, except restricts the keys to values accepted by the action provided.

Callback implementation for Ash.Type.storage_type/1.

Types

t()

@type t() :: %Foundry.Proposals.ImpactAnalysis{
  __lateral_join_source__: term(),
  __meta__: term(),
  __metadata__: term(),
  __order__: term(),
  affected_modules: term(),
  affected_tests: term(),
  aggregates: term(),
  calculations: term(),
  compliance_requirements_affected: term(),
  computed_at: term(),
  migration_is_reversible: term(),
  migration_required: term(),
  touches_sensitive_resources: term()
}

Functions

apply_constraints_array(term, constraints)

Callback implementation for Ash.Type.apply_constraints_array/2.

cast_input(input, constraints)

Callback implementation for Ash.Type.cast_input/2.

cast_stored(value, constraints)

Callback implementation for Ash.Type.cast_stored/2.

check_atomic(value, constraints, list? \\ false)

default_short_name()

dump_to_native(value, _)

Callback implementation for Ash.Type.dump_to_native/2.

equal?(left, right)

Callback implementation for Ash.Type.equal?/2.

fetch_key(map, atom)

get_rewrites(merged_load, calculation, path, _)

Callback implementation for Ash.Type.get_rewrites/4.

handle_change(old_value, new_value, constraints)

Callback implementation for Ash.Type.handle_change/3.

handle_change?()

handle_change_array(old_values, new_values, constraints)

Callback implementation for Ash.Type.handle_change_array/3.

input(opts)

@spec input(values :: map() | Keyword.t()) :: map() | no_return()

Validates that the keys in the provided input are valid for at least one action on the resource.

Raises a KeyError error at compile time if not. This exists because generally a struct should only ever be created by Ash as a result of a successful action. You should not be creating records manually in code, e.g %MyResource{value: 1, value: 2}. Generally that is fine, but often with embedded resources it is nice to be able to validate the keys that are being provided, e.g

Resource
|> Ash.Changeset.for_create(:create, %{embedded: EmbeddedResource.input(foo: 1, bar: 2)})
|> Ash.create()

input(opts, action)

@spec input(values :: map() | Keyword.t(), action :: atom()) :: map() | no_return()

Same as input/1, except restricts the keys to values accepted by the action provided.

load(record, load, constraints, context)

Callback implementation for Ash.Type.load/4.

prepare_change(old_value, new_value, constraints)

Callback implementation for Ash.Type.prepare_change/3.

prepare_change?()

prepare_change_array(old_values, new_uncasted_values, constraints)

Callback implementation for Ash.Type.prepare_change_array/3.

rewrite(value, rewrites, constraints)

Callback implementation for Ash.Type.rewrite/3.

storage_type(_)

Callback implementation for Ash.Type.storage_type/1.