-module(lightspeed@data_plane_huge). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/lightspeed/data_plane_huge.gleam"). -export([compact_transport_profiles/0, default_transport_profile/0, new/6, million_row_plane/3, request/3, burst_batch/4, compact_transport_valid/1, valid/1, query_window/2, apply_burst_updates/3, steady_state_no_full_root_churn/1, ordering_invariant/1, run_huge_benchmarks/0, default_huge_budgets/0, evaluate_huge_budgets/2, budget_failures/1, dataset_label/1, transport_label/1, query_error_label/1, patch_summary_signature/1, window_signature/1, signature/1, benchmark_signature/1, budget_result_signature/1, target/1, dataset/1, total_rows/1, transport/1, window_sequence/1, window_version/1]). -export_type([dataset/0, transport_profile/0, plane/0, window_request/0, window/0, burst_batch/0, patch_summary/0, query_error/0, benchmark/0, budget/0, budget_result/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC(" Data-plane 2.0 contracts for million-row and burst-analytics workloads (M51).\n"). -type dataset() :: million_row_list | {million_row_grid, integer()} | {burst_analytics, integer()}. -type transport_profile() :: {transport_profile, binary(), binary(), integer(), integer(), binary()}. -opaque plane() :: {plane, binary(), dataset(), integer(), integer(), binary(), transport_profile(), integer(), integer(), integer()}. -type window_request() :: {window_request, integer(), integer(), integer()}. -type window() :: {window, integer(), integer(), integer(), integer(), integer(), integer(), integer()}. -type burst_batch() :: {burst_batch, binary(), integer(), integer(), integer()}. -type patch_summary() :: {patch_summary, integer(), integer(), boolean(), binary()}. -type query_error() :: {invalid_window, integer(), integer()} | {sequence_regressed, integer(), integer()}. -type benchmark() :: {benchmark, binary(), integer(), integer(), integer(), integer(), integer(), integer(), integer()}. -type budget() :: {budget, binary(), integer(), integer(), integer(), integer(), integer(), integer()}. -type budget_result() :: {budget_result, binary(), boolean(), binary()}. -file("src/lightspeed/data_plane_huge.gleam", 111). ?DOC(" Deterministic compact transport profile matrix.\n"). -spec compact_transport_profiles() -> list(transport_profile()). compact_transport_profiles() -> [{transport_profile, <<"ws_compact_delta"/utf8>>, <<"binary"/utf8>>, 4096, 2000, <<"delta_keys"/utf8>>}, {transport_profile, <<"sse_compact_json"/utf8>>, <<"json"/utf8>>, 6144, 1500, <<"columnar_json"/utf8>>}, {transport_profile, <<"longpoll_compact_delta"/utf8>>, <<"json"/utf8>>, 3072, 1200, <<"delta_keys"/utf8>>}]. -file("src/lightspeed/data_plane_huge.gleam", 138). ?DOC(" Default transport profile for huge-data workloads.\n"). -spec default_transport_profile() -> transport_profile(). default_transport_profile() -> {transport_profile, <<"ws_compact_delta"/utf8>>, <<"binary"/utf8>>, 4096, 2000, <<"delta_keys"/utf8>>}. -file("src/lightspeed/data_plane_huge.gleam", 149). ?DOC(" Build a huge-data plane.\n"). -spec new( binary(), dataset(), integer(), integer(), binary(), transport_profile() ) -> plane(). new(Target, Dataset, Total_rows, Window_limit, Ordering_key, Transport) -> {plane, Target, Dataset, Total_rows, Window_limit, Ordering_key, Transport, 1, 0, 0}. -file("src/lightspeed/data_plane_huge.gleam", 171). ?DOC(" Build the default million-row plane for one dataset profile.\n"). -spec million_row_plane(binary(), dataset(), transport_profile()) -> plane(). million_row_plane(Target, Dataset, Transport) -> new(Target, Dataset, 1000000, 2000, <<"row_id"/utf8>>, Transport). -file("src/lightspeed/data_plane_huge.gleam", 180). ?DOC(" Build one window request.\n"). -spec request(integer(), integer(), integer()) -> window_request(). request(Offset, Limit, Sequence) -> {window_request, Offset, Limit, Sequence}. -file("src/lightspeed/data_plane_huge.gleam", 185). ?DOC(" Build one burst update batch.\n"). -spec burst_batch(binary(), integer(), integer(), integer()) -> burst_batch(). burst_batch(Batch_id, Upserts, Deletes, Max_sequence) -> {burst_batch, Batch_id, Upserts, Deletes, Max_sequence}. -file("src/lightspeed/data_plane_huge.gleam", 213). ?DOC(" Validate one compact transport profile.\n"). -spec compact_transport_valid(transport_profile()) -> boolean(). compact_transport_valid(Profile) -> ((((erlang:element(2, Profile) /= <<""/utf8>>) andalso (erlang:element( 4, Profile ) > 0)) andalso (erlang:element(5, Profile) > 0)) andalso ((erlang:element(3, Profile) =:= <<"binary"/utf8>>) orelse (erlang:element( 3, Profile ) =:= <<"json"/utf8>>))) andalso ((erlang:element(6, Profile) =:= <<"delta_keys"/utf8>>) orelse (erlang:element( 6, Profile ) =:= <<"columnar_json"/utf8>>)). -file("src/lightspeed/data_plane_huge.gleam", 541). -spec dataset_valid(dataset()) -> boolean(). dataset_valid(Dataset) -> case Dataset of million_row_list -> true; {million_row_grid, Columns} -> Columns > 0; {burst_analytics, Cubes} -> Cubes > 0 end. -file("src/lightspeed/data_plane_huge.gleam", 200). ?DOC(" Validate one huge-data plane.\n"). -spec valid(plane()) -> boolean(). valid(Plane) -> ((((((((erlang:element(2, Plane) /= <<""/utf8>>) andalso dataset_valid( erlang:element(3, Plane) )) andalso (erlang:element(4, Plane) >= 0)) andalso (erlang:element(5, Plane) > 0)) andalso (erlang:element(6, Plane) /= <<""/utf8>>)) andalso compact_transport_valid(erlang:element(7, Plane))) andalso (erlang:element(8, Plane) > 0)) andalso (erlang:element(9, Plane) >= 0)) andalso (erlang:element(10, Plane) >= 0). -file("src/lightspeed/data_plane_huge.gleam", 722). -spec max_int(integer(), integer()) -> integer(). max_int(Left, Right) -> case Left >= Right of true -> Left; false -> Right end. -file("src/lightspeed/data_plane_huge.gleam", 549). -spec build_window(plane(), integer(), integer(), integer()) -> window(). build_window(Plane, Offset, Limit, Sequence) -> Clamped_offset = gleam@int:clamp(Offset, 0, erlang:element(4, Plane)), Remaining = max_int(0, erlang:element(4, Plane) - Clamped_offset), Actual_limit = gleam@int:clamp(Limit, 0, Remaining), First_index = case Actual_limit =:= 0 of true -> 0; false -> Clamped_offset + 1 end, Last_index = case Actual_limit =:= 0 of true -> 0; false -> Clamped_offset + Actual_limit end, {window, Clamped_offset, Limit, erlang:element(4, Plane), First_index, Last_index, erlang:element(8, Plane), Sequence}. -file("src/lightspeed/data_plane_huge.gleam", 225). ?DOC(" Query one huge-data window.\n"). -spec query_window(plane(), window_request()) -> {ok, window()} | {error, query_error()}. query_window(Plane, Request) -> case ((erlang:element(2, Request) < 0) orelse (erlang:element(3, Request) =< 0)) orelse (erlang:element(3, Request) > erlang:element(5, Plane)) of true -> {error, {invalid_window, erlang:element(2, Request), erlang:element(3, Request)}}; false -> case erlang:element(4, Request) < erlang:element(10, Plane) of true -> {error, {sequence_regressed, erlang:element(10, Plane), erlang:element(4, Request)}}; false -> {ok, build_window( Plane, erlang:element(2, Request), erlang:element(3, Request), erlang:element(4, Request) )} end end. -file("src/lightspeed/data_plane_huge.gleam", 578). -spec summarize_patch(transport_profile(), integer(), burst_batch()) -> patch_summary(). summarize_patch(Profile, Limit, Batch) -> Changed_rows = erlang:element(3, Batch) + erlang:element(4, Batch), Patch_ops = gleam@int:clamp( (Changed_rows div 30) + 4, 1, max_int(1, (Limit div 30) + 10) ), Payload_bytes = case erlang:element(6, Profile) of <<"columnar_json"/utf8>> -> (Patch_ops * 84) + 920; _ -> (Patch_ops * 72) + 880 end, Full_root_churn = Changed_rows > max_int(1, Limit * 16), {patch_summary, Patch_ops, Payload_bytes, Full_root_churn, erlang:element(2, Profile)}. -file("src/lightspeed/data_plane_huge.gleam", 254). ?DOC(" Apply one burst update batch and emit compact patch summary.\n"). -spec apply_burst_updates(plane(), window_request(), burst_batch()) -> {plane(), {ok, window()} | {error, query_error()}, patch_summary()}. apply_burst_updates(Plane, Request, Batch) -> Next_total = max_int( 0, (erlang:element(4, Plane) + erlang:element(3, Batch)) - erlang:element( 4, Batch ) ), Next_sequence = max_int(erlang:element(10, Plane), erlang:element(5, Batch)), Next_plane = {plane, erlang:element(2, Plane), erlang:element(3, Plane), Next_total, erlang:element(5, Plane), erlang:element(6, Plane), erlang:element(7, Plane), erlang:element(8, Plane) + 1, erlang:element(9, Plane) + 1, Next_sequence}, Next_request = {window_request, erlang:element(2, Request), erlang:element(3, Request), Next_sequence}, Next_window = query_window(Next_plane, Next_request), Patch = summarize_patch( erlang:element(7, Next_plane), erlang:element(3, Request), Batch ), {Next_plane, Next_window, Patch}. -file("src/lightspeed/data_plane_huge.gleam", 282). ?DOC(" `True` when the patch summary avoids full-root churn.\n"). -spec steady_state_no_full_root_churn(patch_summary()) -> boolean(). steady_state_no_full_root_churn(Summary) -> not erlang:element(4, Summary). -file("src/lightspeed/data_plane_huge.gleam", 287). ?DOC(" `True` when ordering and sequence invariants hold for one window.\n"). -spec ordering_invariant(window()) -> boolean(). ordering_invariant(Window) -> case erlang:element(4, Window) =:= 0 of true -> (erlang:element(5, Window) =:= 0) andalso (erlang:element(6, Window) =:= 0); false -> ((erlang:element(5, Window) >= 1) andalso (erlang:element(6, Window) >= erlang:element(5, Window))) andalso (erlang:element(6, Window) =< erlang:element(4, Window)) end andalso (erlang:element(8, Window) >= 0). -file("src/lightspeed/data_plane_huge.gleam", 600). -spec simulate_benchmark(binary(), plane(), burst_batch()) -> benchmark(). simulate_benchmark(Workload, Plane, Batch) -> Request = {window_request, 420000, 1200, 40}, {_, Next_window, Patch} = apply_burst_updates(Plane, Request, Batch), Ordering_violations = case Next_window of {ok, Window} -> case ordering_invariant(Window) of true -> 0; false -> 1 end; {error, _} -> 1 end, P50_latency = (20 + erlang:element(2, Patch)) + (erlang:element( 4, erlang:element(7, Plane) ) div 800), P95_latency = (P50_latency + 24) + (erlang:element(3, Batch) div 40), Throughput = max_int( 60, (150 - (P95_latency div 3)) - (erlang:element(2, Patch) div 2) ), Full_root_churn_events = case erlang:element(4, Patch) of true -> 1; false -> 0 end, {benchmark, Workload, P50_latency, P95_latency, erlang:element(3, Patch), erlang:element(2, Patch), Throughput, Full_root_churn_events, Ordering_violations}. -file("src/lightspeed/data_plane_huge.gleam", 299). ?DOC(" Run deterministic heavy-data benchmarks.\n"). -spec run_huge_benchmarks() -> list(benchmark()). run_huge_benchmarks() -> [simulate_benchmark( <<"million_grid_scroll"/utf8>>, million_row_plane( <<"#million-grid"/utf8>>, {million_row_grid, 12}, default_transport_profile() ), burst_batch(<<"grid-a"/utf8>>, 420, 180, 120) ), simulate_benchmark( <<"burst_analytics_mix"/utf8>>, million_row_plane( <<"#burst-analytics"/utf8>>, {burst_analytics, 8}, {transport_profile, <<"sse_compact_json"/utf8>>, <<"json"/utf8>>, 6144, 1500, <<"columnar_json"/utf8>>} ), burst_batch(<<"analytics-a"/utf8>>, 620, 340, 160) ), simulate_benchmark( <<"longpoll_compact_view"/utf8>>, million_row_plane( <<"#longpoll-view"/utf8>>, million_row_list, {transport_profile, <<"longpoll_compact_delta"/utf8>>, <<"json"/utf8>>, 3072, 1200, <<"delta_keys"/utf8>>} ), burst_batch(<<"lp-a"/utf8>>, 300, 120, 140) )]. -file("src/lightspeed/data_plane_huge.gleam", 344). ?DOC(" Default deterministic M51 budgets.\n"). -spec default_huge_budgets() -> list(budget()). default_huge_budgets() -> [{budget, <<"million_grid_scroll"/utf8>>, 90, 2700, 28, 110, 0, 0}, {budget, <<"burst_analytics_mix"/utf8>>, 105, 4200, 40, 95, 0, 0}, {budget, <<"longpoll_compact_view"/utf8>>, 115, 3000, 32, 90, 0, 0}]. -file("src/lightspeed/data_plane_huge.gleam", 729). -spec bool_label(boolean()) -> binary(). bool_label(Value) -> case Value of true -> <<"true"/utf8>>; false -> <<"false"/utf8>> end. -file("src/lightspeed/data_plane_huge.gleam", 701). -spec find_benchmark(list(benchmark()), binary()) -> {ok, benchmark()} | {error, binary()}. find_benchmark(Benchmarks, Workload) -> case Benchmarks of [] -> {error, <<"missing_benchmark"/utf8>>}; [Benchmark | Rest] -> case erlang:element(2, Benchmark) =:= Workload of true -> {ok, Benchmark}; false -> find_benchmark(Rest, Workload) end end. -file("src/lightspeed/data_plane_huge.gleam", 651). -spec evaluate_one_budget(list(benchmark()), budget()) -> budget_result(). evaluate_one_budget(Benchmarks, Budget) -> case find_benchmark(Benchmarks, erlang:element(2, Budget)) of {error, Reason} -> {budget_result, erlang:element(2, Budget), false, Reason}; {ok, Benchmark} -> P95_ok = erlang:element(4, Benchmark) =< erlang:element(3, Budget), Payload_ok = erlang:element(5, Benchmark) =< erlang:element( 4, Budget ), Patch_ok = erlang:element(6, Benchmark) =< erlang:element(5, Budget), Throughput_ok = erlang:element(7, Benchmark) >= erlang:element( 6, Budget ), Churn_ok = erlang:element(8, Benchmark) =< erlang:element(7, Budget), Ordering_ok = erlang:element(9, Benchmark) =< erlang:element( 8, Budget ), Passed = ((((P95_ok andalso Payload_ok) andalso Patch_ok) andalso Throughput_ok) andalso Churn_ok) andalso Ordering_ok, {budget_result, erlang:element(2, Budget), Passed, case Passed of true -> <<"within_budget"/utf8>>; false -> <<<<<<<<<<<<<<<<<<<<<<"p95="/utf8, (bool_label( P95_ok ))/binary>>/binary, ",payload="/utf8>>/binary, (bool_label( Payload_ok ))/binary>>/binary, ",patch="/utf8>>/binary, (bool_label(Patch_ok))/binary>>/binary, ",throughput="/utf8>>/binary, (bool_label(Throughput_ok))/binary>>/binary, ",churn="/utf8>>/binary, (bool_label(Churn_ok))/binary>>/binary, ",ordering="/utf8>>/binary, (bool_label(Ordering_ok))/binary>> end} end. -file("src/lightspeed/data_plane_huge.gleam", 636). -spec evaluate_budget_loop( list(benchmark()), list(budget()), list(budget_result()) ) -> list(budget_result()). evaluate_budget_loop(Benchmarks, Budgets, Results_rev) -> case Budgets of [] -> lists:reverse(Results_rev); [Budget | Rest] -> evaluate_budget_loop( Benchmarks, Rest, [evaluate_one_budget(Benchmarks, Budget) | Results_rev] ) end. -file("src/lightspeed/data_plane_huge.gleam", 377). ?DOC(" Evaluate huge-data benchmarks against one budget profile.\n"). -spec evaluate_huge_budgets(list(benchmark()), list(budget())) -> list(budget_result()). evaluate_huge_budgets(Benchmarks, Budgets) -> evaluate_budget_loop(Benchmarks, Budgets, []). -file("src/lightspeed/data_plane_huge.gleam", 385). ?DOC(" Count failing huge-data budgets.\n"). -spec budget_failures(list(budget_result())) -> integer(). budget_failures(Results) -> case Results of [] -> 0; [Result | Rest] -> case erlang:element(3, Result) of true -> budget_failures(Rest); false -> 1 + budget_failures(Rest) end end. -file("src/lightspeed/data_plane_huge.gleam", 397). ?DOC(" Stable dataset label.\n"). -spec dataset_label(dataset()) -> binary(). dataset_label(Dataset) -> case Dataset of million_row_list -> <<"million_row_list"/utf8>>; {million_row_grid, Columns} -> <<"million_row_grid:"/utf8, (erlang:integer_to_binary(Columns))/binary>>; {burst_analytics, Cubes} -> <<"burst_analytics:"/utf8, (erlang:integer_to_binary(Cubes))/binary>> end. -file("src/lightspeed/data_plane_huge.gleam", 406). ?DOC(" Stable transport-profile label.\n"). -spec transport_label(transport_profile()) -> binary(). transport_label(Profile) -> <<<<<<<<<<<<<<<<(erlang:element(2, Profile))/binary, "|encoding="/utf8>>/binary, (erlang:element(3, Profile))/binary>>/binary, "|frame="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(4, Profile)))/binary>>/binary, "|chunk="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(5, Profile)))/binary>>/binary, "|compact="/utf8>>/binary, (erlang:element(6, Profile))/binary>>. -file("src/lightspeed/data_plane_huge.gleam", 419). ?DOC(" Stable query-error label.\n"). -spec query_error_label(query_error()) -> binary(). query_error_label(Error) -> case Error of {invalid_window, Offset, Limit} -> <<<<<<"invalid_window:"/utf8, (erlang:integer_to_binary(Offset))/binary>>/binary, ":"/utf8>>/binary, (erlang:integer_to_binary(Limit))/binary>>; {sequence_regressed, Expected_min, Provided} -> <<<<<<"sequence_regressed:"/utf8, (erlang:integer_to_binary(Expected_min))/binary>>/binary, ":"/utf8>>/binary, (erlang:integer_to_binary(Provided))/binary>> end. -file("src/lightspeed/data_plane_huge.gleam", 432). ?DOC(" Stable patch summary signature.\n"). -spec patch_summary_signature(patch_summary()) -> binary(). patch_summary_signature(Summary) -> <<<<<<<<<<<<<<"ops="/utf8, (erlang:integer_to_binary( erlang:element(2, Summary) ))/binary>>/binary, "|payload="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(3, Summary)))/binary>>/binary, "|full_root_churn="/utf8>>/binary, (bool_label(erlang:element(4, Summary)))/binary>>/binary, "|compact="/utf8>>/binary, (erlang:element(5, Summary))/binary>>. -file("src/lightspeed/data_plane_huge.gleam", 715). -spec row_id(integer()) -> binary(). row_id(Index) -> case Index =< 0 of true -> <<"none"/utf8>>; false -> <<"row-"/utf8, (erlang:integer_to_binary(Index))/binary>> end. -file("src/lightspeed/data_plane_huge.gleam", 444). ?DOC(" Stable window signature.\n"). -spec window_signature(window()) -> binary(). window_signature(Window) -> <<<<<<<<<<<<<<<<<<<<<<<<<<"offset="/utf8, (erlang:integer_to_binary( erlang:element( 2, Window ) ))/binary>>/binary, "|limit="/utf8>>/binary, (erlang:integer_to_binary( erlang:element(3, Window) ))/binary>>/binary, "|total="/utf8>>/binary, (erlang:integer_to_binary( erlang:element(4, Window) ))/binary>>/binary, "|first="/utf8>>/binary, (row_id(erlang:element(5, Window)))/binary>>/binary, "|last="/utf8>>/binary, (row_id(erlang:element(6, Window)))/binary>>/binary, "|version="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(7, Window)))/binary>>/binary, "|sequence="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(8, Window)))/binary>>. -file("src/lightspeed/data_plane_huge.gleam", 462). ?DOC(" Stable huge-plane signature.\n"). -spec signature(plane()) -> binary(). signature(Plane) -> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"target="/utf8, (erlang:element( 2, Plane ))/binary>>/binary, "|dataset="/utf8>>/binary, (dataset_label( erlang:element( 3, Plane ) ))/binary>>/binary, "|rows="/utf8>>/binary, (erlang:integer_to_binary( erlang:element( 4, Plane ) ))/binary>>/binary, "|window_limit="/utf8>>/binary, (erlang:integer_to_binary( erlang:element(5, Plane) ))/binary>>/binary, "|ordering_key="/utf8>>/binary, (erlang:element(6, Plane))/binary>>/binary, "|transport="/utf8>>/binary, (transport_label(erlang:element(7, Plane)))/binary>>/binary, "|version="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(8, Plane)))/binary>>/binary, "|batches="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(9, Plane)))/binary>>/binary, "|last_sequence="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(10, Plane)))/binary>>. -file("src/lightspeed/data_plane_huge.gleam", 484). ?DOC(" Stable benchmark signature.\n"). -spec benchmark_signature(benchmark()) -> binary(). benchmark_signature(Benchmark) -> <<<<<<<<<<<<<<<<<<<<<<<<<<<<(erlang:element(2, Benchmark))/binary, ":p50="/utf8>>/binary, (erlang:integer_to_binary( erlang:element( 3, Benchmark ) ))/binary>>/binary, ":p95="/utf8>>/binary, (erlang:integer_to_binary( erlang:element(4, Benchmark) ))/binary>>/binary, ":payload="/utf8>>/binary, (erlang:integer_to_binary( erlang:element(5, Benchmark) ))/binary>>/binary, ":patch_ops="/utf8>>/binary, (erlang:integer_to_binary( erlang:element(6, Benchmark) ))/binary>>/binary, ":throughput="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(7, Benchmark)))/binary>>/binary, ":root_churn="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(8, Benchmark)))/binary>>/binary, ":ordering_violations="/utf8>>/binary, (erlang:integer_to_binary(erlang:element(9, Benchmark)))/binary>>. -file("src/lightspeed/data_plane_huge.gleam", 503). ?DOC(" Stable budget-result signature.\n"). -spec budget_result_signature(budget_result()) -> binary(). budget_result_signature(Result) -> <<<<<<<<(erlang:element(2, Result))/binary, ":passed="/utf8>>/binary, (bool_label(erlang:element(3, Result)))/binary>>/binary, ":reason="/utf8>>/binary, (erlang:element(4, Result))/binary>>. -file("src/lightspeed/data_plane_huge.gleam", 512). ?DOC(" Plane target accessor.\n"). -spec target(plane()) -> binary(). target(Plane) -> erlang:element(2, Plane). -file("src/lightspeed/data_plane_huge.gleam", 517). ?DOC(" Plane dataset accessor.\n"). -spec dataset(plane()) -> dataset(). dataset(Plane) -> erlang:element(3, Plane). -file("src/lightspeed/data_plane_huge.gleam", 522). ?DOC(" Plane total rows accessor.\n"). -spec total_rows(plane()) -> integer(). total_rows(Plane) -> erlang:element(4, Plane). -file("src/lightspeed/data_plane_huge.gleam", 527). ?DOC(" Plane transport profile accessor.\n"). -spec transport(plane()) -> transport_profile(). transport(Plane) -> erlang:element(7, Plane). -file("src/lightspeed/data_plane_huge.gleam", 532). ?DOC(" Window sequence accessor.\n"). -spec window_sequence(window()) -> integer(). window_sequence(Window) -> erlang:element(8, Window). -file("src/lightspeed/data_plane_huge.gleam", 537). ?DOC(" Window version accessor.\n"). -spec window_version(window()) -> integer(). window_version(Window) -> erlang:element(7, Window).