AshDyan.DataLayer behaviour (AshDyan v0.1.0)

Copy Markdown View Source

Behaviour describing what analysis capabilities a given Ash data layer supports.

AshDyan ships with implementations for AshPostgres and Ash.DataLayer.Simple (ETS). Other data layers fall back to a default that supports only the universally-safe capabilities (:frequency, :aggregate) and rejects :time_bucket/:percentile with a clear error rather than silently wrong results.

The capability check is surfaced explicitly via AshDyan.supports?/2 so callers can discover data-layer limits before issuing a query.

Summary

Functions

Resolve the data-layer capability module for a resource.

Returns true if the resource's data layer supports the capability.

Callbacks

supports?(module, capability)

@callback supports?(module(), AshDyan.capability()) :: boolean()

Functions

for_resource(resource)

@spec for_resource(module()) :: module()

Resolve the data-layer capability module for a resource.

supports?(resource, capability)

@spec supports?(module(), AshDyan.capability()) :: boolean()

Returns true if the resource's data layer supports the capability.