Skip to content

Commit

Permalink
Less unwraps in generated language.rs
Browse files Browse the repository at this point in the history
  • Loading branch information
Xanewok committed Aug 28, 2023
1 parent 7ed54e2 commit 59645e6
Show file tree
Hide file tree
Showing 4 changed files with 200 additions and 80 deletions.
14 changes: 5 additions & 9 deletions crates/codegen/parser/runtime/src/templates/language.tera
Original file line number Diff line number Diff line change
Expand Up @@ -40,18 +40,18 @@ impl From<Error> for napi::Error {
}

impl Language {
const VERSIONS: &'static [&'static str] = &[
pub const SUPPORTED_VERSIONS: &[Version] = &[
{%- for version in versions -%}
"{{ version }}",
Version::new({{ version | split(pat=".") | join(sep=", ") }}),
{%- endfor -%}
];

pub fn new(version: Version) -> std::result::Result<Self, Error> {
if Self::VERSIONS.contains(&version.to_string().as_str()) {
if Self::SUPPORTED_VERSIONS.contains(&version) {
Ok(Self {
{%- for version in code.referenced_versions -%}
{# Separator #}
version_is_at_least_{{ version | replace(from=".", to="_") }}: Version::parse("{{ version }}").unwrap() <= version,
version_is_at_least_{{ version | replace(from=".", to="_") }}: Version::new({{ version | split(pat=".") | join(sep=", ") }}) <= version,
{%- endfor -%}
version,
})
Expand All @@ -64,10 +64,6 @@ impl Language {
&self.version
}

pub fn supported_versions() -> Vec<Version> {
return Self::VERSIONS.iter().map(|v| Version::parse(v).unwrap()).collect();
}

{# Separator #}
{%- for context in code.scanner_contexts -%}
{# Separator #}
Expand Down Expand Up @@ -254,7 +250,7 @@ impl Language {

#[napi(js_name = "supportedVersions")]
pub fn supported_versions_napi() -> Vec<String> {
return Self::VERSIONS.iter().map(|v| v.to_string()).collect();
return Self::SUPPORTED_VERSIONS.iter().map(|v| v.to_string()).collect();
}

#[napi(js_name = "scan")]
Expand Down
132 changes: 97 additions & 35 deletions crates/solidity/outputs/cargo/crate/src/generated/language.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/solidity/outputs/cargo/tests/src/versions/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use slang_solidity::language::Language;

#[test]
fn list_supported_versions() {
let versions = Language::supported_versions();
let versions = Language::SUPPORTED_VERSIONS;

assert_eq!(false, versions.is_empty());
assert_eq!(false, versions.contains(&Version::parse("0.0.0").unwrap()));
Expand Down
132 changes: 97 additions & 35 deletions crates/solidity/outputs/npm/crate/src/generated/language.rs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 59645e6

Please sign in to comment.