mirror of
https://github.com/InioX/matugen.git
synced 2025-05-13 05:20:35 +01:00
chore: format code
This commit is contained in:
parent
dbb2f58165
commit
b73982a6fc
6 changed files with 68 additions and 39 deletions
|
@ -1,7 +1,10 @@
|
||||||
use std::hint::black_box;
|
|
||||||
use criterion::{criterion_group, criterion_main, Criterion};
|
use criterion::{criterion_group, criterion_main, Criterion};
|
||||||
|
use std::hint::black_box;
|
||||||
|
|
||||||
use matugen::{scheme::{get_custom_color_schemes, get_schemes, SchemesEnum}, template_util::template::{self, get_render_data, render_template}};
|
use matugen::{
|
||||||
|
scheme::{get_custom_color_schemes, get_schemes, SchemesEnum},
|
||||||
|
template_util::template::{self, get_render_data, render_template},
|
||||||
|
};
|
||||||
use template::add_engine_filters;
|
use template::add_engine_filters;
|
||||||
use upon::{Engine, Syntax};
|
use upon::{Engine, Syntax};
|
||||||
|
|
||||||
|
@ -14,37 +17,37 @@ fn parse_template(data: &str) {
|
||||||
add_engine_filters(&mut engine);
|
add_engine_filters(&mut engine);
|
||||||
|
|
||||||
let (scheme_dark, scheme_light) = get_schemes(source_color, &None, &None);
|
let (scheme_dark, scheme_light) = get_schemes(source_color, &None, &None);
|
||||||
let schemes = get_custom_color_schemes(
|
let schemes =
|
||||||
source_color,
|
get_custom_color_schemes(source_color, scheme_dark, scheme_light, &None, &None, &None);
|
||||||
scheme_dark,
|
let render_data =
|
||||||
scheme_light,
|
get_render_data(&schemes, &source_color, &SchemesEnum::Dark, &None, None).unwrap();
|
||||||
&None,
|
|
||||||
&None,
|
|
||||||
&None
|
|
||||||
);
|
|
||||||
let render_data = get_render_data(&schemes, &source_color,&SchemesEnum::Dark, &None, None).unwrap();
|
|
||||||
|
|
||||||
engine.add_template("a", data.repeat(50)).expect("failed to add template");
|
engine
|
||||||
render_template(&engine, &"a".to_string(), &render_data, None).expect("failed to render template");
|
.add_template("a", data.repeat(50))
|
||||||
|
.expect("failed to add template");
|
||||||
|
render_template(&engine, &"a".to_string(), &render_data, None)
|
||||||
|
.expect("failed to render template");
|
||||||
}
|
}
|
||||||
|
|
||||||
fn criterion_benchmark(c: &mut Criterion) {
|
fn criterion_benchmark(c: &mut Criterion) {
|
||||||
let data =
|
let data = r#"
|
||||||
r#"
|
|
||||||
<* for name, value in colors *>
|
<* for name, value in colors *>
|
||||||
{{name}} {{value.default.rgba}};
|
{{name}} {{value.default.rgba}};
|
||||||
<* endfor *>
|
<* endfor *>
|
||||||
"#;
|
"#;
|
||||||
let data_filter =
|
let data_filter = r#"
|
||||||
r#"
|
|
||||||
<* for name, value in colors *>
|
<* for name, value in colors *>
|
||||||
{{name | replace: "_", "-" }} {{value.default.rgba | set_alpha: 0.7 | set_hue: -180.0 }};
|
{{name | replace: "_", "-" }} {{value.default.rgba | set_alpha: 0.7 | set_hue: -180.0 }};
|
||||||
<* endfor *>
|
<* endfor *>
|
||||||
"#;
|
"#;
|
||||||
|
|
||||||
c.bench_function("parse 20", |b| b.iter(|| parse_template(black_box(&data.repeat(20)))));
|
c.bench_function("parse 20", |b| {
|
||||||
c.bench_function("parse 20 filters", |b| b.iter(|| parse_template(black_box(&data_filter.repeat(20)))));
|
b.iter(|| parse_template(black_box(&data.repeat(20))))
|
||||||
|
});
|
||||||
|
c.bench_function("parse 20 filters", |b| {
|
||||||
|
b.iter(|| parse_template(black_box(&data_filter.repeat(20))))
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
criterion_group!(benches, criterion_benchmark);
|
criterion_group!(benches, criterion_benchmark);
|
||||||
criterion_main!(benches);
|
criterion_main!(benches);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use std::collections::BTreeSet;
|
|
||||||
use material_colors::scheme::Scheme;
|
use material_colors::scheme::Scheme;
|
||||||
|
use std::collections::BTreeSet;
|
||||||
|
|
||||||
use crate::color::color::{generate_dynamic_scheme, make_custom_color, OwnCustomColor};
|
use crate::color::color::{generate_dynamic_scheme, make_custom_color, OwnCustomColor};
|
||||||
|
|
||||||
|
@ -115,7 +115,6 @@ pub fn get_schemes(
|
||||||
(scheme_dark, scheme_light)
|
(scheme_dark, scheme_light)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
@ -125,12 +124,7 @@ mod tests {
|
||||||
fn schemes_eq() {
|
fn schemes_eq() {
|
||||||
let source_color = material_colors::color::Argb::new(255, 255, 0, 0);
|
let source_color = material_colors::color::Argb::new(255, 255, 0, 0);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
Scheme::from(generate_dynamic_scheme(
|
Scheme::from(generate_dynamic_scheme(&None, source_color, true, None,)).primary,
|
||||||
&None,
|
|
||||||
source_color,
|
|
||||||
true,
|
|
||||||
None,
|
|
||||||
)).primary,
|
|
||||||
Argb {
|
Argb {
|
||||||
alpha: 255,
|
alpha: 255,
|
||||||
red: 255,
|
red: 255,
|
||||||
|
@ -139,4 +133,4 @@ mod tests {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -90,7 +90,13 @@ impl Template {
|
||||||
Source::Color { .. } => None,
|
Source::Color { .. } => None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut render_data = get_render_data(schemes, source_color, default_scheme, custom_keywords, image)?;
|
let mut render_data = get_render_data(
|
||||||
|
schemes,
|
||||||
|
source_color,
|
||||||
|
default_scheme,
|
||||||
|
custom_keywords,
|
||||||
|
image,
|
||||||
|
)?;
|
||||||
|
|
||||||
for (i, (name, template)) in templates.iter().enumerate() {
|
for (i, (name, template)) in templates.iter().enumerate() {
|
||||||
let (input_path_absolute, output_path_absolute) =
|
let (input_path_absolute, output_path_absolute) =
|
||||||
|
@ -256,4 +262,4 @@ fn export_template(
|
||||||
);
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
pub mod template;
|
pub mod template;
|
||||||
|
|
|
@ -5,13 +5,16 @@ use colorsys::{ColorAlpha, Hsl};
|
||||||
use material_colors::color::Argb;
|
use material_colors::color::Argb;
|
||||||
use upon::{Engine, Value};
|
use upon::{Engine, Value};
|
||||||
|
|
||||||
|
use crate::color::format::{
|
||||||
|
format_hex, format_hex_stripped, format_hsl, format_hsla, format_rgb, format_rgba,
|
||||||
|
rgb_from_argb,
|
||||||
|
};
|
||||||
use crate::filters::alpha::set_alpha;
|
use crate::filters::alpha::set_alpha;
|
||||||
use crate::filters::grayscale::grayscale;
|
use crate::filters::grayscale::grayscale;
|
||||||
use crate::filters::hue::set_hue;
|
use crate::filters::hue::set_hue;
|
||||||
use crate::filters::invert::invert;
|
use crate::filters::invert::invert;
|
||||||
use crate::filters::lightness::set_lightness;
|
use crate::filters::lightness::set_lightness;
|
||||||
use crate::scheme::{Schemes, SchemesEnum};
|
use crate::scheme::{Schemes, SchemesEnum};
|
||||||
use crate::color::format::{format_hex, format_hex_stripped, format_hsl, format_hsla, format_rgb, format_rgba, rgb_from_argb};
|
|
||||||
|
|
||||||
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
#[derive(serde::Serialize, serde::Deserialize, Debug)]
|
||||||
pub struct Color {
|
pub struct Color {
|
||||||
|
@ -53,7 +56,12 @@ pub fn add_engine_filters(engine: &mut Engine) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn render_template(engine: &Engine, name: &String, render_data: &Value, path: Option<&str>) -> Result<String, Report> {
|
pub fn render_template(
|
||||||
|
engine: &Engine,
|
||||||
|
name: &String,
|
||||||
|
render_data: &Value,
|
||||||
|
path: Option<&str>,
|
||||||
|
) -> Result<String, Report> {
|
||||||
let data = engine
|
let data = engine
|
||||||
.template(name)
|
.template(name)
|
||||||
.render(render_data)
|
.render(render_data)
|
||||||
|
@ -71,7 +79,13 @@ pub fn render_template(engine: &Engine, name: &String, render_data: &Value, path
|
||||||
Ok(data)
|
Ok(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_render_data(schemes: &Schemes, source_color: &Argb, default_scheme: &SchemesEnum, custom_keywords: &Option<HashMap<String, String>>, image: Option<&String>) -> Result<Value, Report> {
|
pub fn get_render_data(
|
||||||
|
schemes: &Schemes,
|
||||||
|
source_color: &Argb,
|
||||||
|
default_scheme: &SchemesEnum,
|
||||||
|
custom_keywords: &Option<HashMap<String, String>>,
|
||||||
|
image: Option<&String>,
|
||||||
|
) -> Result<Value, Report> {
|
||||||
let colors = generate_colors(schemes, source_color, default_scheme)?;
|
let colors = generate_colors(schemes, source_color, default_scheme)?;
|
||||||
let mut custom: HashMap<String, String> = Default::default();
|
let mut custom: HashMap<String, String> = Default::default();
|
||||||
for entry in custom_keywords.iter() {
|
for entry in custom_keywords.iter() {
|
||||||
|
@ -93,12 +107,24 @@ pub fn generate_colors(
|
||||||
for ((field, color_light), (_, color_dark)) in std::iter::zip(&schemes.light, &schemes.dark) {
|
for ((field, color_light), (_, color_dark)) in std::iter::zip(&schemes.light, &schemes.dark) {
|
||||||
hashmap.insert(
|
hashmap.insert(
|
||||||
field.to_string(),
|
field.to_string(),
|
||||||
generate_single_color(field, source_color, default_scheme, *color_light, *color_dark)?,
|
generate_single_color(
|
||||||
|
field,
|
||||||
|
source_color,
|
||||||
|
default_scheme,
|
||||||
|
*color_light,
|
||||||
|
*color_dark,
|
||||||
|
)?,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
hashmap.insert(
|
hashmap.insert(
|
||||||
String::from("source_color"),
|
String::from("source_color"),
|
||||||
generate_single_color("source_color", source_color, default_scheme, *source_color, *source_color)?,
|
generate_single_color(
|
||||||
|
"source_color",
|
||||||
|
source_color,
|
||||||
|
default_scheme,
|
||||||
|
*source_color,
|
||||||
|
*source_color,
|
||||||
|
)?,
|
||||||
);
|
);
|
||||||
Ok(hashmap)
|
Ok(hashmap)
|
||||||
}
|
}
|
||||||
|
@ -148,4 +174,4 @@ fn generate_color_strings(color: Argb) -> Color {
|
||||||
lightness: format!("{:?}", &hsl_color.lightness()),
|
lightness: format!("{:?}", &hsl_color.lightness()),
|
||||||
saturation: format!("{:?}", &hsl_color.saturation()),
|
saturation: format!("{:?}", &hsl_color.saturation()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@ pub fn dump_json(schemes: &Schemes, source_color: &Argb, format: &Format) {
|
||||||
|
|
||||||
let mut colors_normal_light: HashMap<&str, String> = HashMap::new();
|
let mut colors_normal_light: HashMap<&str, String> = HashMap::new();
|
||||||
let mut colors_normal_dark: HashMap<&str, String> = HashMap::new();
|
let mut colors_normal_dark: HashMap<&str, String> = HashMap::new();
|
||||||
|
|
||||||
for ((field, color_light), (_, color_dark)) in std::iter::zip(&schemes.light, &schemes.dark) {
|
for ((field, color_light), (_, color_dark)) in std::iter::zip(&schemes.light, &schemes.dark) {
|
||||||
let color_light: Rgb = rgb_from_argb(*color_light);
|
let color_light: Rgb = rgb_from_argb(*color_light);
|
||||||
let color_dark: Rgb = rgb_from_argb(*color_dark);
|
let color_dark: Rgb = rgb_from_argb(*color_dark);
|
||||||
|
|
Loading…
Reference in a new issue