MingaEditor.Frontend.ResourcePolicy (Minga v0.1.0)

Copy Markdown View Source

Versioned frontend hard-dimension policy advertised during capability negotiation.

Zero-valued dimensions are unadvertised. Limits describe admission boundaries only; payload-derived usage stays local to the producer and privacy-safe telemetry.

Summary

Functions

Validates an explicit adapted-retry descriptor for one named bounded dimension.

Returns whether a frontend advertises a hard limit for the named dimension.

Builds the version-one resource policy appended by capability format 2.

Returns the legacy policy with no advertised hard dimensions.

Types

adaptation_descriptor()

@type adaptation_descriptor() :: %{
  dimension: dimension(),
  rejected_value: pos_integer(),
  adapted_value: pos_integer()
}

dimension()

@type dimension() :: :frame_bytes | :frame_commands | :window_rows

t()

@type t() :: %MingaEditor.Frontend.ResourcePolicy{
  max_frame_bytes: non_neg_integer(),
  max_frame_commands: non_neg_integer(),
  max_window_rows: non_neg_integer(),
  version: non_neg_integer()
}

Functions

adaptation(dimension, rejected_value, adapted_value)

@spec adaptation(dimension(), integer(), integer()) ::
  {:ok, adaptation_descriptor()} | :error

Validates an explicit adapted-retry descriptor for one named bounded dimension.

advertised?(resource_policy, atom)

@spec advertised?(t(), dimension()) :: boolean()

Returns whether a frontend advertises a hard limit for the named dimension.

new(version, max_frame_bytes, max_frame_commands, max_window_rows)

Builds the version-one resource policy appended by capability format 2.

unadvertised()

@spec unadvertised() :: t()

Returns the legacy policy with no advertised hard dimensions.