Update to Rust 1.65 (#2314)
* Update to Rust 1.65 Because then you can use dynamic linking on Linux * Fix a bunch of clippy lints * Update changelogs * More clippy fixes
This commit is contained in:
parent
f7019926dc
commit
eca5e6a4d2
48 changed files with 195 additions and 187 deletions
8
.github/workflows/rust.yml
vendored
8
.github/workflows/rust.yml
vendored
|
@ -19,7 +19,7 @@ jobs:
|
||||||
- uses: actions-rs/toolchain@v1
|
- uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
profile: default
|
profile: default
|
||||||
toolchain: 1.64.0
|
toolchain: 1.65.0
|
||||||
override: true
|
override: true
|
||||||
- name: Install packages (Linux)
|
- name: Install packages (Linux)
|
||||||
if: runner.os == 'Linux'
|
if: runner.os == 'Linux'
|
||||||
|
@ -84,7 +84,7 @@ jobs:
|
||||||
- uses: actions-rs/toolchain@v1
|
- uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
profile: minimal
|
profile: minimal
|
||||||
toolchain: 1.64.0
|
toolchain: 1.65.0
|
||||||
target: wasm32-unknown-unknown
|
target: wasm32-unknown-unknown
|
||||||
override: true
|
override: true
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ jobs:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: EmbarkStudios/cargo-deny-action@v1
|
- uses: EmbarkStudios/cargo-deny-action@v1
|
||||||
with:
|
with:
|
||||||
rust-version: "1.62.0"
|
rust-version: "1.65.0"
|
||||||
|
|
||||||
android:
|
android:
|
||||||
name: android
|
name: android
|
||||||
|
@ -146,7 +146,7 @@ jobs:
|
||||||
- uses: actions-rs/toolchain@v1
|
- uses: actions-rs/toolchain@v1
|
||||||
with:
|
with:
|
||||||
profile: minimal
|
profile: minimal
|
||||||
toolchain: 1.64.0
|
toolchain: 1.65.0
|
||||||
target: aarch64-linux-android
|
target: aarch64-linux-android
|
||||||
override: true
|
override: true
|
||||||
- name: Set up cargo cache
|
- name: Set up cargo cache
|
||||||
|
|
|
@ -5,6 +5,7 @@ NOTE: [`epaint`](crates/epaint/CHANGELOG.md), [`eframe`](crates/eframe/CHANGELOG
|
||||||
|
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
* MSRV (Minimum Supported Rust Version) is now `1.65.0` ([#2314](https://github.com/emilk/egui/pull/2314)).
|
||||||
* ⚠️ BREAKING: egui now expects integrations to do all color blending in gamma space ([#2071](https://github.com/emilk/egui/pull/2071)).
|
* ⚠️ BREAKING: egui now expects integrations to do all color blending in gamma space ([#2071](https://github.com/emilk/egui/pull/2071)).
|
||||||
* ⚠️ BREAKING: if you have overlapping interactive widgets, only the top widget (last added) will be interactive ([#2244](https://github.com/emilk/egui/pull/2244)).
|
* ⚠️ BREAKING: if you have overlapping interactive widgets, only the top widget (last added) will be interactive ([#2244](https://github.com/emilk/egui/pull/2244)).
|
||||||
|
|
||||||
|
|
25
Cranky.toml
25
Cranky.toml
|
@ -1,19 +1,19 @@
|
||||||
# https://github.com/ericseppanen/cargo-cranky
|
# https://github.com/ericseppanen/cargo-cranky
|
||||||
# cargo install cargo-cranky && cargo cranky
|
# cargo install cargo-cranky && cargo cranky
|
||||||
|
|
||||||
deny = [
|
deny = ["unsafe_code"]
|
||||||
"unsafe_code",
|
|
||||||
]
|
|
||||||
|
|
||||||
warn = [
|
warn = [
|
||||||
"clippy::all",
|
"clippy::all",
|
||||||
"clippy::await_holding_lock",
|
"clippy::await_holding_lock",
|
||||||
|
"clippy::bool_to_int_with_if",
|
||||||
"clippy::char_lit_as_u8",
|
"clippy::char_lit_as_u8",
|
||||||
"clippy::checked_conversions",
|
"clippy::checked_conversions",
|
||||||
"clippy::dbg_macro",
|
"clippy::dbg_macro",
|
||||||
"clippy::debug_assert_with_mut_call",
|
"clippy::debug_assert_with_mut_call",
|
||||||
"clippy::disallowed_methods",
|
"clippy::disallowed_methods",
|
||||||
"clippy::disallowed_script_idents",
|
"clippy::disallowed_script_idents",
|
||||||
|
"clippy::doc_link_with_quotes",
|
||||||
"clippy::doc_markdown",
|
"clippy::doc_markdown",
|
||||||
"clippy::empty_enum",
|
"clippy::empty_enum",
|
||||||
"clippy::enum_glob_use",
|
"clippy::enum_glob_use",
|
||||||
|
@ -37,6 +37,8 @@ warn = [
|
||||||
"clippy::inefficient_to_string",
|
"clippy::inefficient_to_string",
|
||||||
"clippy::invalid_upcast_comparisons",
|
"clippy::invalid_upcast_comparisons",
|
||||||
"clippy::iter_not_returning_iterator",
|
"clippy::iter_not_returning_iterator",
|
||||||
|
"clippy::iter_on_empty_collections",
|
||||||
|
"clippy::iter_on_single_items",
|
||||||
"clippy::large_digit_groups",
|
"clippy::large_digit_groups",
|
||||||
"clippy::large_stack_arrays",
|
"clippy::large_stack_arrays",
|
||||||
"clippy::large_types_passed_by_value",
|
"clippy::large_types_passed_by_value",
|
||||||
|
@ -45,7 +47,9 @@ warn = [
|
||||||
"clippy::lossy_float_literal",
|
"clippy::lossy_float_literal",
|
||||||
"clippy::macro_use_imports",
|
"clippy::macro_use_imports",
|
||||||
"clippy::manual_assert",
|
"clippy::manual_assert",
|
||||||
|
"clippy::manual_instant_elapsed",
|
||||||
"clippy::manual_ok_or",
|
"clippy::manual_ok_or",
|
||||||
|
"clippy::manual_string_new",
|
||||||
"clippy::map_err_ignore",
|
"clippy::map_err_ignore",
|
||||||
"clippy::map_flatten",
|
"clippy::map_flatten",
|
||||||
"clippy::map_unwrap_or",
|
"clippy::map_unwrap_or",
|
||||||
|
@ -55,6 +59,7 @@ warn = [
|
||||||
"clippy::match_wildcard_for_single_variants",
|
"clippy::match_wildcard_for_single_variants",
|
||||||
"clippy::mem_forget",
|
"clippy::mem_forget",
|
||||||
"clippy::mismatched_target_os",
|
"clippy::mismatched_target_os",
|
||||||
|
"clippy::mismatching_type_param_order",
|
||||||
"clippy::missing_enforced_import_renames",
|
"clippy::missing_enforced_import_renames",
|
||||||
"clippy::missing_errors_doc",
|
"clippy::missing_errors_doc",
|
||||||
"clippy::missing_safety_doc",
|
"clippy::missing_safety_doc",
|
||||||
|
@ -86,6 +91,8 @@ warn = [
|
||||||
"clippy::unimplemented",
|
"clippy::unimplemented",
|
||||||
"clippy::unnecessary_wraps",
|
"clippy::unnecessary_wraps",
|
||||||
"clippy::unnested_or_patterns",
|
"clippy::unnested_or_patterns",
|
||||||
|
"clippy::unused_peekable",
|
||||||
|
"clippy::unused_rounding",
|
||||||
"clippy::unused_self",
|
"clippy::unused_self",
|
||||||
"clippy::useless_transmute",
|
"clippy::useless_transmute",
|
||||||
"clippy::verbose_file_reads",
|
"clippy::verbose_file_reads",
|
||||||
|
@ -101,15 +108,15 @@ warn = [
|
||||||
"unused_extern_crates",
|
"unused_extern_crates",
|
||||||
"unused_import_braces",
|
"unused_import_braces",
|
||||||
"unused_lifetimes",
|
"unused_lifetimes",
|
||||||
# "clippy::cloned_instead_of_copied",
|
|
||||||
# "clippy::mod_module_files",
|
|
||||||
# "trivial_casts",
|
|
||||||
# "unused_qualifications",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
allow = [
|
allow = [
|
||||||
|
# TODO(emilk): enable more lints
|
||||||
|
"clippy::cloned_instead_of_copied",
|
||||||
"clippy::derive_partial_eq_without_eq",
|
"clippy::derive_partial_eq_without_eq",
|
||||||
"clippy::type_complexity",
|
"clippy::type_complexity",
|
||||||
"clippy::unnecessary_lazy_evaluations",
|
"clippy::undocumented_unsafe_blocks",
|
||||||
"clippy::let-and-return"
|
"trivial_casts",
|
||||||
|
"unsafe_op_in_unsafe_fn", # `unsafe_op_in_unsafe_fn` may become the default in future Rust versions: https://github.com/rust-lang/rust/issues/71668
|
||||||
|
"unused_qualifications",
|
||||||
]
|
]
|
||||||
|
|
|
@ -5,6 +5,7 @@ NOTE: [`egui-winit`](../egui-winit/CHANGELOG.md), [`egui_glium`](../egui_glium/C
|
||||||
|
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
* MSRV (Minimum Supported Rust Version) is now `1.65.0` ([#2314](https://github.com/emilk/egui/pull/2314)).
|
||||||
* Added `NativeOptions::fullsize_content` option on Mac to build titlebar-less windows with floating window controls ([#2049](https://github.com/emilk/egui/pull/2049)).
|
* Added `NativeOptions::fullsize_content` option on Mac to build titlebar-less windows with floating window controls ([#2049](https://github.com/emilk/egui/pull/2049)).
|
||||||
* Added `NativeOptions::event_loop_builder` hook for apps to change platform specific event loop options ([#1952](https://github.com/emilk/egui/pull/1952)).
|
* Added `NativeOptions::event_loop_builder` hook for apps to change platform specific event loop options ([#1952](https://github.com/emilk/egui/pull/1952)).
|
||||||
* Enabled deferred render state initialization to support Android ([#1952](https://github.com/emilk/egui/pull/1952)).
|
* Enabled deferred render state initialization to support Android ([#1952](https://github.com/emilk/egui/pull/1952)).
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.19.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
description = "egui framework - write GUI apps that compiles to web and/or natively"
|
description = "egui framework - write GUI apps that compiles to web and/or natively"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
homepage = "https://github.com/emilk/egui/tree/master/crates/eframe"
|
homepage = "https://github.com/emilk/egui/tree/master/crates/eframe"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
@ -165,7 +165,7 @@ pub fn handle_app_output(
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(fullscreen) = fullscreen {
|
if let Some(fullscreen) = fullscreen {
|
||||||
window.set_fullscreen(fullscreen.then(|| winit::window::Fullscreen::Borderless(None)));
|
window.set_fullscreen(fullscreen.then_some(winit::window::Fullscreen::Borderless(None)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(window_title) = window_title {
|
if let Some(window_title) = window_title {
|
||||||
|
@ -328,7 +328,7 @@ impl EpiIntegration {
|
||||||
handle_app_output(window, self.egui_ctx.pixels_per_point(), app_output);
|
handle_app_output(window, self.egui_ctx.pixels_per_point(), app_output);
|
||||||
}
|
}
|
||||||
|
|
||||||
let frame_time = (std::time::Instant::now() - frame_start).as_secs_f64() as f32;
|
let frame_time = frame_start.elapsed().as_secs_f64() as f32;
|
||||||
self.frame.info.cpu_usage = Some(frame_time);
|
self.frame.info.cpu_usage = Some(frame_time);
|
||||||
|
|
||||||
full_output
|
full_output
|
||||||
|
|
|
@ -308,7 +308,7 @@ pub fn install_canvas_events(runner_container: &mut AppRunnerContainer) -> Resul
|
||||||
modifiers,
|
modifiers,
|
||||||
});
|
});
|
||||||
|
|
||||||
push_touches(&mut *runner_lock, egui::TouchPhase::Start, &event);
|
push_touches(&mut runner_lock, egui::TouchPhase::Start, &event);
|
||||||
runner_lock.needs_repaint.repaint_asap();
|
runner_lock.needs_repaint.repaint_asap();
|
||||||
event.stop_propagation();
|
event.stop_propagation();
|
||||||
event.prevent_default();
|
event.prevent_default();
|
||||||
|
@ -330,7 +330,7 @@ pub fn install_canvas_events(runner_container: &mut AppRunnerContainer) -> Resul
|
||||||
.events
|
.events
|
||||||
.push(egui::Event::PointerMoved(pos));
|
.push(egui::Event::PointerMoved(pos));
|
||||||
|
|
||||||
push_touches(&mut *runner_lock, egui::TouchPhase::Move, &event);
|
push_touches(&mut runner_lock, egui::TouchPhase::Move, &event);
|
||||||
runner_lock.needs_repaint.repaint_asap();
|
runner_lock.needs_repaint.repaint_asap();
|
||||||
event.stop_propagation();
|
event.stop_propagation();
|
||||||
event.prevent_default();
|
event.prevent_default();
|
||||||
|
@ -357,7 +357,7 @@ pub fn install_canvas_events(runner_container: &mut AppRunnerContainer) -> Resul
|
||||||
// Then remove hover effect:
|
// Then remove hover effect:
|
||||||
runner_lock.input.raw.events.push(egui::Event::PointerGone);
|
runner_lock.input.raw.events.push(egui::Event::PointerGone);
|
||||||
|
|
||||||
push_touches(&mut *runner_lock, egui::TouchPhase::End, &event);
|
push_touches(&mut runner_lock, egui::TouchPhase::End, &event);
|
||||||
runner_lock.needs_repaint.repaint_asap();
|
runner_lock.needs_repaint.repaint_asap();
|
||||||
event.stop_propagation();
|
event.stop_propagation();
|
||||||
event.prevent_default();
|
event.prevent_default();
|
||||||
|
|
|
@ -8,7 +8,7 @@ authors = [
|
||||||
"Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
|
"Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
|
||||||
]
|
]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
homepage = "https://github.com/emilk/egui/tree/master/crates/egui-wgpu"
|
homepage = "https://github.com/emilk/egui/tree/master/crates/egui-wgpu"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
@ -46,7 +46,7 @@ impl Painter {
|
||||||
Self {
|
Self {
|
||||||
configuration,
|
configuration,
|
||||||
msaa_samples,
|
msaa_samples,
|
||||||
depth_format: (depth_bits > 0).then(|| wgpu::TextureFormat::Depth32Float),
|
depth_format: (depth_bits > 0).then_some(wgpu::TextureFormat::Depth32Float),
|
||||||
depth_texture_view: None,
|
depth_texture_view: None,
|
||||||
|
|
||||||
instance,
|
instance,
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.19.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
description = "Bindings for using egui with winit"
|
description = "Bindings for using egui with winit"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
homepage = "https://github.com/emilk/egui/tree/master/crates/egui-winit"
|
homepage = "https://github.com/emilk/egui/tree/master/crates/egui-winit"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
@ -68,7 +68,7 @@ impl WindowSettings {
|
||||||
})
|
})
|
||||||
.with_fullscreen(
|
.with_fullscreen(
|
||||||
self.fullscreen
|
self.fullscreen
|
||||||
.then(|| winit::window::Fullscreen::Borderless(None)),
|
.then_some(winit::window::Fullscreen::Borderless(None)),
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
window
|
window
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.19.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
description = "An easy-to-use immediate mode GUI that runs on both web and native"
|
description = "An easy-to-use immediate mode GUI that runs on both web and native"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
homepage = "https://github.com/emilk/egui"
|
homepage = "https://github.com/emilk/egui"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
readme = "../../README.md"
|
readme = "../../README.md"
|
||||||
|
|
|
@ -293,7 +293,7 @@ impl Focus {
|
||||||
self.id_next_frame = self.last_interested; // frame-delay so gained_focus works
|
self.id_next_frame = self.last_interested; // frame-delay so gained_focus works
|
||||||
self.pressed_shift_tab = false;
|
self.pressed_shift_tab = false;
|
||||||
}
|
}
|
||||||
} else if self.pressed_tab && self.id == None && !self.give_to_next {
|
} else if self.pressed_tab && self.id.is_none() && !self.give_to_next {
|
||||||
// nothing has focus and the user pressed tab - give focus to the first widgets that wants it:
|
// nothing has focus and the user pressed tab - give focus to the first widgets that wants it:
|
||||||
self.id = Some(id);
|
self.id = Some(id);
|
||||||
self.pressed_tab = false;
|
self.pressed_tab = false;
|
||||||
|
|
|
@ -443,7 +443,7 @@ impl SubMenuButton {
|
||||||
|
|
||||||
let (rect, response) = ui.allocate_at_least(desired_size, sense);
|
let (rect, response) = ui.allocate_at_least(desired_size, sense);
|
||||||
response.widget_info(|| {
|
response.widget_info(|| {
|
||||||
crate::WidgetInfo::labeled(crate::WidgetType::Button, &text_galley.text())
|
crate::WidgetInfo::labeled(crate::WidgetType::Button, text_galley.text())
|
||||||
});
|
});
|
||||||
|
|
||||||
if ui.is_rect_visible(rect) {
|
if ui.is_rect_visible(rect) {
|
||||||
|
@ -491,7 +491,7 @@ impl SubMenu {
|
||||||
add_contents: impl FnOnce(&mut Ui) -> R,
|
add_contents: impl FnOnce(&mut Ui) -> R,
|
||||||
) -> InnerResponse<Option<R>> {
|
) -> InnerResponse<Option<R>> {
|
||||||
let sub_id = ui.id().with(self.button.index);
|
let sub_id = ui.id().with(self.button.index);
|
||||||
let button = self.button.show(ui, &*self.parent_state.read(), sub_id);
|
let button = self.button.show(ui, &self.parent_state.read(), sub_id);
|
||||||
self.parent_state
|
self.parent_state
|
||||||
.write()
|
.write()
|
||||||
.submenu_button_interaction(ui, sub_id, &button);
|
.submenu_button_interaction(ui, sub_id, &button);
|
||||||
|
|
|
@ -464,7 +464,7 @@ impl<'a> Widget for DragValue<'a> {
|
||||||
|
|
||||||
// Since we round the value being dragged, we need to store the full precision value in memory:
|
// Since we round the value being dragged, we need to store the full precision value in memory:
|
||||||
let stored_value = (drag_state.last_dragged_id == Some(response.id))
|
let stored_value = (drag_state.last_dragged_id == Some(response.id))
|
||||||
.then(|| drag_state.last_dragged_value)
|
.then_some(drag_state.last_dragged_value)
|
||||||
.flatten();
|
.flatten();
|
||||||
let stored_value = stored_value.unwrap_or(value);
|
let stored_value = stored_value.unwrap_or(value);
|
||||||
let stored_value = stored_value + delta_value;
|
let stored_value = stored_value + delta_value;
|
||||||
|
|
|
@ -110,7 +110,7 @@ impl Label {
|
||||||
if let Some(first_section) = text_job.job.sections.first_mut() {
|
if let Some(first_section) = text_job.job.sections.first_mut() {
|
||||||
first_section.leading_space = first_row_indentation;
|
first_section.leading_space = first_row_indentation;
|
||||||
}
|
}
|
||||||
let text_galley = text_job.into_galley(&*ui.fonts());
|
let text_galley = text_job.into_galley(&ui.fonts());
|
||||||
|
|
||||||
let pos = pos2(ui.max_rect().left(), ui.cursor().top());
|
let pos = pos2(ui.max_rect().left(), ui.cursor().top());
|
||||||
assert!(
|
assert!(
|
||||||
|
@ -143,7 +143,7 @@ impl Label {
|
||||||
text_job.job.justify = ui.layout().horizontal_justify();
|
text_job.job.justify = ui.layout().horizontal_justify();
|
||||||
};
|
};
|
||||||
|
|
||||||
let text_galley = text_job.into_galley(&*ui.fonts());
|
let text_galley = text_job.into_galley(&ui.fonts());
|
||||||
let (rect, response) = ui.allocate_exact_size(text_galley.size(), self.sense);
|
let (rect, response) = ui.allocate_exact_size(text_galley.size(), self.sense);
|
||||||
let pos = match text_galley.galley.job.halign {
|
let pos = match text_galley.galley.job.halign {
|
||||||
Align::LEFT => rect.left_top(),
|
Align::LEFT => rect.left_top(),
|
||||||
|
|
|
@ -406,7 +406,7 @@ impl Line {
|
||||||
/// a horizontal line at the given y-coordinate.
|
/// a horizontal line at the given y-coordinate.
|
||||||
fn y_intersection(p1: &Pos2, p2: &Pos2, y: f32) -> Option<f32> {
|
fn y_intersection(p1: &Pos2, p2: &Pos2, y: f32) -> Option<f32> {
|
||||||
((p1.y > y && p2.y < y) || (p1.y < y && p2.y > y))
|
((p1.y > y && p2.y < y) || (p1.y < y && p2.y > y))
|
||||||
.then(|| ((y * (p1.x - p2.x)) - (p1.x * p2.y - p1.y * p2.x)) / (p1.y - p2.y))
|
.then_some(((y * (p1.x - p2.x)) - (p1.x * p2.y - p1.y * p2.x)) / (p1.y - p2.y))
|
||||||
}
|
}
|
||||||
|
|
||||||
impl PlotItem for Line {
|
impl PlotItem for Line {
|
||||||
|
@ -844,7 +844,7 @@ impl PlotItem for Points {
|
||||||
let default_stroke = Stroke::new(stroke_size, *color);
|
let default_stroke = Stroke::new(stroke_size, *color);
|
||||||
let mut stem_stroke = default_stroke;
|
let mut stem_stroke = default_stroke;
|
||||||
let stroke = (!filled)
|
let stroke = (!filled)
|
||||||
.then(|| default_stroke)
|
.then_some(default_stroke)
|
||||||
.unwrap_or_else(Stroke::none);
|
.unwrap_or_else(Stroke::none);
|
||||||
let fill = filled.then(|| *color).unwrap_or_default();
|
let fill = filled.then(|| *color).unwrap_or_default();
|
||||||
|
|
||||||
|
@ -1644,7 +1644,7 @@ fn add_rulers_and_text(
|
||||||
|
|
||||||
let corner_value = elem.corner_value();
|
let corner_value = elem.corner_value();
|
||||||
shapes.push(Shape::text(
|
shapes.push(Shape::text(
|
||||||
&*plot.ui.fonts(),
|
&plot.ui.fonts(),
|
||||||
plot.transform.position_from_point(&corner_value) + vec2(3.0, -2.0),
|
plot.transform.position_from_point(&corner_value) + vec2(3.0, -2.0),
|
||||||
Align2::LEFT_BOTTOM,
|
Align2::LEFT_BOTTOM,
|
||||||
text,
|
text,
|
||||||
|
@ -1701,7 +1701,7 @@ pub(super) fn rulers_at_value(
|
||||||
let font_id = TextStyle::Body.resolve(plot.ui.style());
|
let font_id = TextStyle::Body.resolve(plot.ui.style());
|
||||||
|
|
||||||
shapes.push(Shape::text(
|
shapes.push(Shape::text(
|
||||||
&*plot.ui.fonts(),
|
&plot.ui.fonts(),
|
||||||
pointer + vec2(3.0, -2.0),
|
pointer + vec2(3.0, -2.0),
|
||||||
Align2::LEFT_BOTTOM,
|
Align2::LEFT_BOTTOM,
|
||||||
text,
|
text,
|
||||||
|
|
|
@ -299,7 +299,7 @@ impl PlotPoints {
|
||||||
) -> Option<RangeInclusive<f64>> {
|
) -> Option<RangeInclusive<f64>> {
|
||||||
let start = range1.start().max(*range2.start());
|
let start = range1.start().max(*range2.start());
|
||||||
let end = range1.end().min(*range2.end());
|
let end = range1.end().min(*range2.end());
|
||||||
(start < end).then(|| start..=end)
|
(start < end).then_some(start..=end)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(super) fn bounds(&self) -> PlotBounds {
|
pub(super) fn bounds(&self) -> PlotBounds {
|
||||||
|
|
|
@ -189,7 +189,7 @@ impl LegendWidget {
|
||||||
LegendEntry::new(color, checked)
|
LegendEntry::new(color, checked)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
(!entries.is_empty()).then(|| Self {
|
(!entries.is_empty()).then_some(Self {
|
||||||
rect,
|
rect,
|
||||||
entries,
|
entries,
|
||||||
config,
|
config,
|
||||||
|
|
|
@ -490,7 +490,7 @@ impl<'t> TextEdit<'t> {
|
||||||
if response.hovered() && ui.input().pointer.any_pressed() {
|
if response.hovered() && ui.input().pointer.any_pressed() {
|
||||||
ui.memory().request_focus(id);
|
ui.memory().request_focus(id);
|
||||||
if ui.input().modifiers.shift {
|
if ui.input().modifiers.shift {
|
||||||
if let Some(mut cursor_range) = state.cursor_range(&*galley) {
|
if let Some(mut cursor_range) = state.cursor_range(&galley) {
|
||||||
cursor_range.primary = cursor_at_pointer;
|
cursor_range.primary = cursor_at_pointer;
|
||||||
state.set_cursor_range(Some(cursor_range));
|
state.set_cursor_range(Some(cursor_range));
|
||||||
} else {
|
} else {
|
||||||
|
@ -502,7 +502,7 @@ impl<'t> TextEdit<'t> {
|
||||||
} else if ui.input().pointer.any_down() && response.is_pointer_button_down_on()
|
} else if ui.input().pointer.any_down() && response.is_pointer_button_down_on()
|
||||||
{
|
{
|
||||||
// drag to select text:
|
// drag to select text:
|
||||||
if let Some(mut cursor_range) = state.cursor_range(&*galley) {
|
if let Some(mut cursor_range) = state.cursor_range(&galley) {
|
||||||
cursor_range.primary = cursor_at_pointer;
|
cursor_range.primary = cursor_at_pointer;
|
||||||
state.set_cursor_range(Some(cursor_range));
|
state.set_cursor_range(Some(cursor_range));
|
||||||
}
|
}
|
||||||
|
@ -516,7 +516,7 @@ impl<'t> TextEdit<'t> {
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut cursor_range = None;
|
let mut cursor_range = None;
|
||||||
let prev_cursor_range = state.cursor_range(&*galley);
|
let prev_cursor_range = state.cursor_range(&galley);
|
||||||
if ui.memory().has_focus(id) && interactive {
|
if ui.memory().has_focus(id) && interactive {
|
||||||
ui.memory().lock_focus(id, lock_focus);
|
ui.memory().lock_focus(id, lock_focus);
|
||||||
|
|
||||||
|
@ -595,7 +595,7 @@ impl<'t> TextEdit<'t> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ui.memory().has_focus(id) {
|
if ui.memory().has_focus(id) {
|
||||||
if let Some(cursor_range) = state.cursor_range(&*galley) {
|
if let Some(cursor_range) = state.cursor_range(&galley) {
|
||||||
// We paint the cursor on top of the text, in case
|
// We paint the cursor on top of the text, in case
|
||||||
// the text galley has backgrounds (as e.g. `code` snippets in markup do).
|
// the text galley has backgrounds (as e.g. `code` snippets in markup do).
|
||||||
paint_cursor_selection(ui, &painter, text_draw_pos, &galley, &cursor_range);
|
paint_cursor_selection(ui, &painter, text_draw_pos, &galley, &cursor_range);
|
||||||
|
@ -703,7 +703,7 @@ fn events(
|
||||||
password: bool,
|
password: bool,
|
||||||
default_cursor_range: CursorRange,
|
default_cursor_range: CursorRange,
|
||||||
) -> (bool, CursorRange) {
|
) -> (bool, CursorRange) {
|
||||||
let mut cursor_range = state.cursor_range(&*galley).unwrap_or(default_cursor_range);
|
let mut cursor_range = state.cursor_range(galley).unwrap_or(default_cursor_range);
|
||||||
|
|
||||||
// We feed state to the undoer both before and after handling input
|
// We feed state to the undoer both before and after handling input
|
||||||
// so that the undoer creates automatic saves even when there are no events for a while.
|
// so that the undoer creates automatic saves even when there are no events for a while.
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.19.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
default-run = "egui_demo_app"
|
default-run = "egui_demo_app"
|
||||||
|
|
||||||
|
@ -19,18 +19,9 @@ crate-type = ["cdylib", "rlib"]
|
||||||
default = ["glow", "persistence"]
|
default = ["glow", "persistence"]
|
||||||
|
|
||||||
http = ["ehttp", "image", "poll-promise", "egui_extras/image"]
|
http = ["ehttp", "image", "poll-promise", "egui_extras/image"]
|
||||||
persistence = [
|
persistence = ["eframe/persistence", "egui/persistence", "serde"]
|
||||||
"eframe/persistence",
|
|
||||||
"egui/persistence",
|
|
||||||
"serde",
|
|
||||||
]
|
|
||||||
screen_reader = ["eframe/screen_reader"] # experimental
|
screen_reader = ["eframe/screen_reader"] # experimental
|
||||||
serde = [
|
serde = ["dep:serde", "egui_demo_lib/serde", "egui_extras/serde", "egui/serde"]
|
||||||
"dep:serde",
|
|
||||||
"egui_demo_lib/serde",
|
|
||||||
"egui_extras/serde",
|
|
||||||
"egui/serde",
|
|
||||||
]
|
|
||||||
syntax_highlighting = ["egui_demo_lib/syntax_highlighting"]
|
syntax_highlighting = ["egui_demo_lib/syntax_highlighting"]
|
||||||
|
|
||||||
glow = ["eframe/glow"]
|
glow = ["eframe/glow"]
|
||||||
|
@ -40,8 +31,12 @@ wgpu = ["eframe/wgpu", "bytemuck"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
chrono = { version = "0.4", features = ["js-sys", "wasmbind"] }
|
chrono = { version = "0.4", features = ["js-sys", "wasmbind"] }
|
||||||
eframe = { version = "0.19.0", path = "../eframe", default-features = false }
|
eframe = { version = "0.19.0", path = "../eframe", default-features = false }
|
||||||
egui = { version = "0.19.0", path = "../egui", features = ["extra_debug_asserts"] }
|
egui = { version = "0.19.0", path = "../egui", features = [
|
||||||
egui_demo_lib = { version = "0.19.0", path = "../egui_demo_lib", features = ["chrono"] }
|
"extra_debug_asserts",
|
||||||
|
] }
|
||||||
|
egui_demo_lib = { version = "0.19.0", path = "../egui_demo_lib", features = [
|
||||||
|
"chrono",
|
||||||
|
] }
|
||||||
tracing = "0.1"
|
tracing = "0.1"
|
||||||
|
|
||||||
# Optional dependencies:
|
# Optional dependencies:
|
||||||
|
|
|
@ -96,7 +96,7 @@ impl FrameHistory {
|
||||||
let cpu_usage = to_screen.inverse().transform_pos(pointer_pos).y;
|
let cpu_usage = to_screen.inverse().transform_pos(pointer_pos).y;
|
||||||
let text = format!("{:.1} ms", 1e3 * cpu_usage);
|
let text = format!("{:.1} ms", 1e3 * cpu_usage);
|
||||||
shapes.push(Shape::text(
|
shapes.push(Shape::text(
|
||||||
&*ui.fonts(),
|
&ui.fonts(),
|
||||||
pos2(rect.left(), y),
|
pos2(rect.left(), y),
|
||||||
egui::Align2::LEFT_BOTTOM,
|
egui::Align2::LEFT_BOTTOM,
|
||||||
text,
|
text,
|
||||||
|
|
|
@ -59,15 +59,13 @@ pub fn init_wasm_hooks() {
|
||||||
#[wasm_bindgen]
|
#[wasm_bindgen]
|
||||||
pub async fn start_separate(canvas_id: &str) -> Result<WebHandle, wasm_bindgen::JsValue> {
|
pub async fn start_separate(canvas_id: &str) -> Result<WebHandle, wasm_bindgen::JsValue> {
|
||||||
let web_options = eframe::WebOptions::default();
|
let web_options = eframe::WebOptions::default();
|
||||||
let handle = eframe::start_web(
|
eframe::start_web(
|
||||||
canvas_id,
|
canvas_id,
|
||||||
web_options,
|
web_options,
|
||||||
Box::new(|cc| Box::new(WrapApp::new(cc))),
|
Box::new(|cc| Box::new(WrapApp::new(cc))),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.map(|handle| WebHandle { handle });
|
.map(|handle| WebHandle { handle })
|
||||||
|
|
||||||
handle
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This is the entry-point for all the web-assembly.
|
/// This is the entry-point for all the web-assembly.
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.19.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
description = "Example library for egui"
|
description = "Example library for egui"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
homepage = "https://github.com/emilk/egui/tree/master/crates/egui_demo_lib"
|
homepage = "https://github.com/emilk/egui/tree/master/crates/egui_demo_lib"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
@ -41,7 +41,9 @@ chrono = { version = "0.4", optional = true, features = ["js-sys", "wasmbind"] }
|
||||||
## Enable this when generating docs.
|
## Enable this when generating docs.
|
||||||
document-features = { version = "0.2", optional = true }
|
document-features = { version = "0.2", optional = true }
|
||||||
serde = { version = "1", optional = true, features = ["derive"] }
|
serde = { version = "1", optional = true, features = ["derive"] }
|
||||||
syntect = { version = "5", optional = true, default-features = false, features = ["default-fancy"] }
|
syntect = { version = "5", optional = true, default-features = false, features = [
|
||||||
|
"default-fancy",
|
||||||
|
] }
|
||||||
|
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|
|
@ -8,7 +8,7 @@ authors = [
|
||||||
]
|
]
|
||||||
description = "Extra functionality and widgets for the egui GUI library"
|
description = "Extra functionality and widgets for the egui GUI library"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
homepage = "https://github.com/emilk/egui"
|
homepage = "https://github.com/emilk/egui"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
@ -67,4 +67,6 @@ usvg = { version = "0.23", optional = true }
|
||||||
serde = { version = "1", features = ["derive"], optional = true }
|
serde = { version = "1", features = ["derive"], optional = true }
|
||||||
|
|
||||||
# feature "tracing"
|
# feature "tracing"
|
||||||
tracing = { version = "0.1", optional = true, default-features = false, features = ["std"] }
|
tracing = { version = "0.1", optional = true, default-features = false, features = [
|
||||||
|
"std",
|
||||||
|
] }
|
||||||
|
|
|
@ -63,7 +63,7 @@ impl<'a> DatePickerButton<'a> {
|
||||||
|
|
||||||
impl<'a> Widget for DatePickerButton<'a> {
|
impl<'a> Widget for DatePickerButton<'a> {
|
||||||
fn ui(self, ui: &mut Ui) -> egui::Response {
|
fn ui(self, ui: &mut Ui) -> egui::Response {
|
||||||
let id = ui.make_persistent_id(&self.id_source);
|
let id = ui.make_persistent_id(self.id_source);
|
||||||
let mut button_state = ui
|
let mut button_state = ui
|
||||||
.memory()
|
.memory()
|
||||||
.data
|
.data
|
||||||
|
@ -104,7 +104,7 @@ impl<'a> Widget for DatePickerButton<'a> {
|
||||||
let InnerResponse {
|
let InnerResponse {
|
||||||
inner: saved,
|
inner: saved,
|
||||||
response: area_response,
|
response: area_response,
|
||||||
} = Area::new(ui.make_persistent_id(&self.id_source))
|
} = Area::new(ui.make_persistent_id(self.id_source))
|
||||||
.order(Order::Foreground)
|
.order(Order::Foreground)
|
||||||
.fixed_pos(pos)
|
.fixed_pos(pos)
|
||||||
.show(ui.ctx(), |ui| {
|
.show(ui.ctx(), |ui| {
|
||||||
|
|
|
@ -67,7 +67,7 @@ impl<'a> DatePickerPopup<'a> {
|
||||||
)
|
)
|
||||||
.sizes(
|
.sizes(
|
||||||
Size::exact((spacing + height) * (weeks.len() + 1) as f32),
|
Size::exact((spacing + height) * (weeks.len() + 1) as f32),
|
||||||
if self.calendar { 1 } else { 0 },
|
self.calendar as usize,
|
||||||
)
|
)
|
||||||
.size(Size::exact(height))
|
.size(Size::exact(height))
|
||||||
.vertical(|mut strip| {
|
.vertical(|mut strip| {
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.19.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
description = "Bindings for using egui natively using the glium library"
|
description = "Bindings for using egui natively using the glium library"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
homepage = "https://github.com/emilk/egui/tree/master/crates/egui_glium"
|
homepage = "https://github.com/emilk/egui/tree/master/crates/egui_glium"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.19.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
description = "Bindings for using egui natively using the glow library"
|
description = "Bindings for using egui natively using the glow library"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
homepage = "https://github.com/emilk/egui/tree/master/crates/egui_glow"
|
homepage = "https://github.com/emilk/egui/tree/master/crates/egui_glow"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.19.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
description = "Minimal 2D math library for GUI work"
|
description = "Minimal 2D math library for GUI work"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
homepage = "https://github.com/emilk/egui/tree/master/crates/emath"
|
homepage = "https://github.com/emilk/egui/tree/master/crates/emath"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.19.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
description = "Minimal 2D graphics library for GUI work"
|
description = "Minimal 2D graphics library for GUI work"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
homepage = "https://github.com/emilk/egui/tree/master/crates/epaint"
|
homepage = "https://github.com/emilk/egui/tree/master/crates/epaint"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
|
@ -183,7 +183,7 @@ mod rw_lock_impl {
|
||||||
type Target = T;
|
type Target = T;
|
||||||
|
|
||||||
fn deref(&self) -> &Self::Target {
|
fn deref(&self) -> &Self::Target {
|
||||||
&**self.guard.as_ref().unwrap()
|
self.guard.as_ref().unwrap()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,13 +222,13 @@ mod rw_lock_impl {
|
||||||
type Target = T;
|
type Target = T;
|
||||||
|
|
||||||
fn deref(&self) -> &Self::Target {
|
fn deref(&self) -> &Self::Target {
|
||||||
&**self.guard.as_ref().unwrap()
|
self.guard.as_ref().unwrap()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, T> DerefMut for RwLockWriteGuard<'a, T> {
|
impl<'a, T> DerefMut for RwLockWriteGuard<'a, T> {
|
||||||
fn deref_mut(&mut self) -> &mut Self::Target {
|
fn deref_mut(&mut self) -> &mut Self::Target {
|
||||||
&mut **self.guard.as_mut().unwrap()
|
self.guard.as_mut().unwrap()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
@ -17,6 +17,6 @@ glow = "0.11"
|
||||||
three-d = { version = "0.13", default-features = false }
|
three-d = { version = "0.13", default-features = false }
|
||||||
|
|
||||||
[target.'cfg(target_arch = "wasm32")'.dependencies] # Web dependencies
|
[target.'cfg(target_arch = "wasm32")'.dependencies] # Web dependencies
|
||||||
|
console_error_panic_hook = "0.1" # For logging
|
||||||
wasm-bindgen = "0.2" # Core bindings
|
wasm-bindgen = "0.2" # Core bindings
|
||||||
wasm-bindgen-futures = "0.4" # Core bindings
|
wasm-bindgen-futures = "0.4" # Core bindings
|
||||||
console_error_panic_hook = "0.1" # For logging
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
#![allow(special_module_name)]
|
||||||
|
|
||||||
mod main;
|
mod main;
|
||||||
|
|
||||||
// Entry point for wasm
|
// Entry point for wasm
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["tami5 <kkharji@proton.me>"]
|
authors = ["tami5 <kkharji@proton.me>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["René Rössler <rene@freshx.de>"]
|
authors = ["René Rössler <rene@freshx.de>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ version = "0.1.0"
|
||||||
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.62"
|
rust-version = "1.65"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,6 @@
|
||||||
# to the user in the error, instead of "error: invalid channel name '[toolchain]'".
|
# to the user in the error, instead of "error: invalid channel name '[toolchain]'".
|
||||||
|
|
||||||
[toolchain]
|
[toolchain]
|
||||||
channel = "1.64.0"
|
channel = "1.65.0"
|
||||||
components = [ "rustfmt", "clippy" ]
|
components = [ "rustfmt", "clippy" ]
|
||||||
targets = [ "wasm32-unknown-unknown" ]
|
targets = [ "wasm32-unknown-unknown" ]
|
||||||
|
|
Loading…
Reference in a new issue