ocypode_lang/diagnostics/runtime/
functions.rs1use miette::{Diagnostic, NamedSource};
2
3#[derive(Debug, Diagnostic, thiserror::Error)]
5#[diagnostic(
6 code("Error(runtime::functions::missing_main)"),
7 help("Try adding a main function.")
8)]
9#[error("Missing main function")]
10pub struct MissingMain {
11 #[source_code]
12 pub(crate) src: NamedSource,
13}
14
15#[derive(Debug, Diagnostic, thiserror::Error)]
17#[diagnostic(
18 code("Error(runtime::functions::invalid_exit_code)"),
19 help("Try using a number between 0 and 255.")
20)]
21#[error("Invalid exit code")]
22pub struct InvalidExitCode {
23 #[source_code]
24 pub(crate) src: NamedSource,
25 pub(crate) code: bigdecimal::BigDecimal,
26 #[label("Invalid exit code `{code}`")]
27 pub(crate) span: miette::SourceSpan,
28}
29
30#[derive(Debug, Diagnostic, thiserror::Error)]
32#[diagnostic(
33 code("Error(runtime::functions::uncorrect_arguments)"),
34 help("`{func_name}` function takes {params}. But you are passed {args_count} arguments.")
35)]
36#[error("Uncorrect arguments")]
37pub struct UncorrectArguments {
38 pub(crate) func_name: String,
39 pub(crate) args_count: usize,
40 pub(crate) params: String,
41 #[source_code]
42 pub(crate) src: NamedSource,
43 #[label("Function `{func_name}` is defined here")]
44 pub(crate) func_span: miette::SourceSpan,
45 #[label("Uncorrect arguments for function `{func_name}`")]
46 pub(crate) span: miette::SourceSpan,
47}