rustfmt
This commit is contained in:
parent
95b57f711c
commit
0154ff3933
21
src/lib.rs
21
src/lib.rs
@ -8,7 +8,7 @@ use std::panic;
|
|||||||
use wasm_bindgen::prelude::*;
|
use wasm_bindgen::prelude::*;
|
||||||
use web_sys::HtmlCanvasElement;
|
use web_sys::HtmlCanvasElement;
|
||||||
mod misc;
|
mod misc;
|
||||||
use crate::misc::{Cache, ChartOutput, DrawResult, add_asterisks};
|
use crate::misc::{add_asterisks, Cache, ChartOutput, DrawResult};
|
||||||
|
|
||||||
#[global_allocator]
|
#[global_allocator]
|
||||||
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;
|
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;
|
||||||
@ -90,7 +90,7 @@ impl ChartManager {
|
|||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn draw(
|
fn draw(
|
||||||
&mut self, element: HtmlCanvasElement, dark_mode: bool
|
&mut self, element: HtmlCanvasElement, dark_mode: bool,
|
||||||
) -> DrawResult<(impl Fn((i32, i32)) -> Option<(f32, f32)>, f32)> {
|
) -> DrawResult<(impl Fn((i32, i32)) -> Option<(f32, f32)>, f32)> {
|
||||||
let func = self.get_func();
|
let func = self.get_func();
|
||||||
|
|
||||||
@ -112,7 +112,12 @@ impl ChartManager {
|
|||||||
.build_cartesian_2d(self.min_x..self.max_x, self.min_y..self.max_y)?;
|
.build_cartesian_2d(self.min_x..self.max_x, self.min_y..self.max_y)?;
|
||||||
|
|
||||||
if dark_mode {
|
if dark_mode {
|
||||||
chart.configure_mesh().x_labels(3).y_labels(3).light_line_style(&RGBColor(254, 254, 254)).draw()?;
|
chart
|
||||||
|
.configure_mesh()
|
||||||
|
.x_labels(3)
|
||||||
|
.y_labels(3)
|
||||||
|
.light_line_style(&RGBColor(254, 254, 254))
|
||||||
|
.draw()?;
|
||||||
} else {
|
} else {
|
||||||
chart.configure_mesh().x_labels(3).y_labels(3).draw()?;
|
chart.configure_mesh().x_labels(3).y_labels(3).draw()?;
|
||||||
}
|
}
|
||||||
@ -185,19 +190,17 @@ impl ChartManager {
|
|||||||
|
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
pub fn update(
|
pub fn update(
|
||||||
&mut self, canvas: HtmlCanvasElement, func_str_new: String, min_x: f32, max_x: f32, min_y: f32,
|
&mut self, canvas: HtmlCanvasElement, func_str_new: String, min_x: f32, max_x: f32,
|
||||||
max_y: f32, num_interval: usize, resolution: usize, dark_mode: bool
|
min_y: f32, max_y: f32, num_interval: usize, resolution: usize, dark_mode: bool,
|
||||||
) -> Result<ChartOutput, JsValue> {
|
) -> Result<ChartOutput, JsValue> {
|
||||||
let func_str: String = add_asterisks(func_str_new);
|
let func_str: String = add_asterisks(func_str_new);
|
||||||
|
|
||||||
|
|
||||||
let underlying_update = (func_str != self.func_str)
|
let underlying_update = (func_str != self.func_str)
|
||||||
| (min_x != self.min_x)
|
| (min_x != self.min_x)
|
||||||
| (max_x != self.max_x)
|
| (max_x != self.max_x)
|
||||||
| (min_y != self.min_y)
|
| (min_y != self.min_y)
|
||||||
| (max_y != self.max_y);
|
| (max_y != self.max_y);
|
||||||
|
|
||||||
|
|
||||||
if underlying_update | (self.resolution != resolution) {
|
if underlying_update | (self.resolution != resolution) {
|
||||||
self.back_cache.invalidate();
|
self.back_cache.invalidate();
|
||||||
}
|
}
|
||||||
@ -214,7 +217,9 @@ impl ChartManager {
|
|||||||
self.num_interval = num_interval;
|
self.num_interval = num_interval;
|
||||||
self.resolution = resolution;
|
self.resolution = resolution;
|
||||||
|
|
||||||
let draw_output = self.draw(canvas, dark_mode).map_err(|err| err.to_string())?;
|
let draw_output = self
|
||||||
|
.draw(canvas, dark_mode)
|
||||||
|
.map_err(|err| err.to_string())?;
|
||||||
let map_coord = draw_output.0;
|
let map_coord = draw_output.0;
|
||||||
|
|
||||||
let chart_output = ChartOutput {
|
let chart_output = ChartOutput {
|
||||||
|
|||||||
19
src/misc.rs
19
src/misc.rs
@ -7,7 +7,9 @@ pub type DrawResult<T> = Result<T, Box<dyn std::error::Error>>;
|
|||||||
pub fn add_asterisks(function_in: String) -> String {
|
pub fn add_asterisks(function_in: String) -> String {
|
||||||
let function = function_in.replace("log10(", "log("); // replace log10 with log
|
let function = function_in.replace("log10(", "log("); // replace log10 with log
|
||||||
let valid_variables: Vec<char> = "xe".chars().collect();
|
let valid_variables: Vec<char> = "xe".chars().collect();
|
||||||
let letters: Vec<char>= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".chars().collect();
|
let letters: Vec<char> = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
.chars()
|
||||||
|
.collect();
|
||||||
let numbers: Vec<char> = "0123456789".chars().collect();
|
let numbers: Vec<char> = "0123456789".chars().collect();
|
||||||
let function_chars: Vec<char> = function.chars().collect();
|
let function_chars: Vec<char> = function.chars().collect();
|
||||||
let func_chars_len = function_chars.len();
|
let func_chars_len = function_chars.len();
|
||||||
@ -21,7 +23,7 @@ pub fn add_asterisks(function_in: String) -> String {
|
|||||||
let prev_prev_char = if prev_chars_len >= 2 {
|
let prev_prev_char = if prev_chars_len >= 2 {
|
||||||
match prev_chars.get(prev_chars_len - 2) {
|
match prev_chars.get(prev_chars_len - 2) {
|
||||||
Some(x) => *x,
|
Some(x) => *x,
|
||||||
None => panic!()
|
None => panic!(),
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
' '
|
' '
|
||||||
@ -30,7 +32,7 @@ pub fn add_asterisks(function_in: String) -> String {
|
|||||||
let prev_char = if prev_chars_len >= 1 {
|
let prev_char = if prev_chars_len >= 1 {
|
||||||
match prev_chars.get(prev_chars_len - 1) {
|
match prev_chars.get(prev_chars_len - 1) {
|
||||||
Some(x) => *x,
|
Some(x) => *x,
|
||||||
None => panic!()
|
None => panic!(),
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
' '
|
' '
|
||||||
@ -44,13 +46,16 @@ pub fn add_asterisks(function_in: String) -> String {
|
|||||||
let prev_pi = (prev_prev_char == 'p') && (prev_char == 'i');
|
let prev_pi = (prev_prev_char == 'p') && (prev_char == 'i');
|
||||||
let for_pi = (for_char == 'i') && (c == 'p');
|
let for_pi = (for_char == 'i') && (c == 'p');
|
||||||
|
|
||||||
|
|
||||||
if prev_char == ')' {
|
if prev_char == ')' {
|
||||||
if (c == '(') | numbers.contains(&c) | letters.contains(&c) {
|
if (c == '(') | numbers.contains(&c) | letters.contains(&c) {
|
||||||
add_asterisk = true;
|
add_asterisk = true;
|
||||||
}
|
}
|
||||||
} else if c == '(' {
|
} else if c == '(' {
|
||||||
if (valid_variables.contains(&prev_char) | (prev_char == ')') | numbers.contains(&prev_char)) && !letters.contains(&prev_prev_char) {
|
if (valid_variables.contains(&prev_char)
|
||||||
|
| (prev_char == ')')
|
||||||
|
| numbers.contains(&prev_char))
|
||||||
|
&& !letters.contains(&prev_prev_char)
|
||||||
|
{
|
||||||
add_asterisk = true;
|
add_asterisk = true;
|
||||||
} else if prev_pi {
|
} else if prev_pi {
|
||||||
add_asterisk = true;
|
add_asterisk = true;
|
||||||
@ -62,7 +67,9 @@ pub fn add_asterisks(function_in: String) -> String {
|
|||||||
} else if letters.contains(&c) {
|
} else if letters.contains(&c) {
|
||||||
if numbers.contains(&prev_char) {
|
if numbers.contains(&prev_char) {
|
||||||
add_asterisk = true;
|
add_asterisk = true;
|
||||||
} else if (valid_variables.contains(&prev_char) && valid_variables.contains(&c)) | prev_pi {
|
} else if (valid_variables.contains(&prev_char) && valid_variables.contains(&c))
|
||||||
|
| prev_pi
|
||||||
|
{
|
||||||
add_asterisk = true;
|
add_asterisk = true;
|
||||||
}
|
}
|
||||||
} else if numbers.contains(&c) {
|
} else if numbers.contains(&c) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user