Packages
caffeine_lang
6.2.2
6.3.1
6.3.0
6.2.2
6.2.1
6.2.0
6.1.2
6.1.1
6.1.0
6.0.0
5.6.0
5.5.0
5.4.4
5.4.3
5.4.2
5.4.1
5.4.0
5.3.0
5.2.0
5.1.1
5.1.0
5.0.12
5.0.11
5.0.10
5.0.8
5.0.7
5.0.6
5.0.5
5.0.4
5.0.1
5.0.0
4.10.0
4.9.0
4.8.3
4.8.2
4.8.1
4.8.0
4.7.9
4.7.8
4.7.7
4.7.6
4.7.5
4.6.7
4.6.6
4.6.5
4.6.4
4.6.3
4.6.2
4.6.0
4.5.1
4.5.0
4.4.4
4.4.3
4.4.1
4.4.0
4.3.7
4.3.6
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
1.0.2
1.0.1
0.1.0
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.2
0.0.1
A compiler for generating reliability artifacts from service expectation definitions.
Current section
Files
Jump to
Current section
Files
src/caffeine_lang@linker@linker.erl
-module(caffeine_lang@linker@linker).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/caffeine_lang/linker/linker.gleam").
-export([link/3]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-file("src/caffeine_lang/linker/linker.gleam", 68).
-spec parse_expectation_sources(
list(caffeine_lang@source_file:source_file(caffeine_lang@source_file:expectation_source())),
list(caffeine_lang@linker@measurements:measurement(caffeine_lang@linker@measurements:measurement_validated())),
gleam@dict:dict(binary(), caffeine_lang@linker@slo_params:param_info())
) -> {ok,
list({list({caffeine_lang@linker@expectations:expectation(),
gleam@option:option(caffeine_lang@linker@measurements:measurement(caffeine_lang@linker@measurements:measurement_validated()))}),
binary()})} |
{error, caffeine_lang@errors:compilation_error()}.
parse_expectation_sources(Sources, Validated_measurements, Slo_params) ->
_pipe = Sources,
_pipe@3 = gleam@list:map(
_pipe,
fun(Source) ->
_pipe@1 = caffeine_lang@frontend@pipeline:compile_expects(Source),
_pipe@2 = gleam@result:'try'(
_pipe@1,
fun(Raw_expectations) ->
caffeine_lang@linker@expectations:validate_expectations(
Raw_expectations,
Validated_measurements,
Slo_params,
erlang:element(2, Source)
)
end
),
gleam@result:map(
_pipe@2,
fun(Exps) -> {Exps, erlang:element(2, Source)} end
)
end
),
caffeine_lang@errors:from_results(_pipe@3).
-file("src/caffeine_lang/linker/linker.gleam", 20).
?DOC(false).
-spec link(
list(caffeine_lang@source_file:vendor_measurement_source()),
list(caffeine_lang@source_file:source_file(caffeine_lang@source_file:expectation_source())),
gleam@dict:dict(binary(), caffeine_lang@linker@slo_params:param_info())
) -> {ok,
list(caffeine_lang@linker@ir:intermediate_representation(caffeine_lang@linker@ir:linked()))} |
{error, caffeine_lang@errors:compilation_error()}.
link(Measurements, Expectation_sources, Slo_params) ->
Reserved_labels = caffeine_lang@linker@ir_builder:reserved_labels(
Slo_params
),
gleam@result:'try'(
begin
_pipe = Measurements,
_pipe@2 = gleam@list:map(
_pipe,
fun(Vbs) ->
_pipe@1 = caffeine_lang@frontend@pipeline:compile_measurements(
erlang:element(2, Vbs)
),
gleam@result:map(
_pipe@1,
fun(Raw_bps) -> {Raw_bps, erlang:element(3, Vbs)} end
)
end
),
caffeine_lang@errors:from_results(_pipe@2)
end,
fun(Compiled_pairs) ->
All_raw_measurements = begin
_pipe@3 = Compiled_pairs,
gleam@list:flat_map(
_pipe@3,
fun(Pair) -> erlang:element(1, Pair) end
)
end,
Vendor_lookup = begin
_pipe@4 = Compiled_pairs,
_pipe@5 = gleam@list:flat_map(
_pipe@4,
fun(Pair@1) ->
{Raw_bps@1, V} = Pair@1,
gleam@list:map(
Raw_bps@1,
fun(Bp) -> {erlang:element(2, Bp), V} end
)
end
),
maps:from_list(_pipe@5)
end,
gleam@result:'try'(
caffeine_lang@linker@measurements:validate_measurements(
All_raw_measurements,
Slo_params
),
fun(Validated_measurements) ->
gleam@result:'try'(
parse_expectation_sources(
Expectation_sources,
Validated_measurements,
Slo_params
),
fun(Expectations_with_paths) ->
caffeine_lang@linker@ir_builder:build_all(
Expectations_with_paths,
Reserved_labels,
Vendor_lookup,
Slo_params
)
end
)
end
)
end
).