Crosswake.NativeEscape.Contract (crosswake v0.1.0)

View Source

Typed contract for Crosswake's single public native escape hatch: route-owned media capture with explicit local staging and explicit transfer handoff.

Summary

Types

denial()

@type denial() :: Crosswake.NativeEscape.Contract.Denial.t()

local_capture()

@type local_capture() :: Crosswake.NativeEscape.Contract.LocalCapture.t()

permission_posture()

@type permission_posture() :: :required | :granted | :denied

request()

@type request() :: Crosswake.NativeEscape.Contract.Request.t()

result()

@type result() :: Crosswake.NativeEscape.Contract.Result.t()

state()

@type state() :: :captured_local | :transfer_complete

transfer_handoff()

@type transfer_handoff() :: Crosswake.NativeEscape.Contract.TransferHandoff.t()

Functions

new_denial(attrs)

@spec new_denial(keyword()) :: denial()

new_local_capture(attrs)

@spec new_local_capture(keyword()) :: local_capture()

new_request(attrs)

@spec new_request(keyword()) :: request()

new_result(attrs)

@spec new_result(keyword()) :: result()

new_transfer_handoff(attrs)

@spec new_transfer_handoff(keyword()) :: transfer_handoff()

protocol()

@spec protocol() :: String.t()

purposes()

@spec purposes() :: [:media_capture]

states()

@spec states() :: [state()]

version()

@spec version() :: String.t()