#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(dead_code)]
#![allow(unnecessary_transmutes)]
#![allow(unsafe_op_in_unsafe_fn)]
#![allow(clippy::all)]
#![allow(unpredictable_function_pointer_comparisons)]
pub use dear_imgui_sys::{
ImDrawData, ImDrawList, ImFontAtlas, ImGuiCond, ImGuiContext, ImGuiDragDropFlags, ImGuiIO,
ImGuiMouseButton, ImGuiStyle, ImTextureID, ImVec2, ImVec4,
};
include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
use std::ops::Range;
impl From<Range<f64>> for ImPlotRange {
fn from(from: Range<f64>) -> Self {
ImPlotRange {
Min: from.start,
Max: from.end,
}
}
}
impl From<[f64; 2]> for ImPlotRange {
fn from(from: [f64; 2]) -> Self {
ImPlotRange {
Min: from[0],
Max: from[1],
}
}
}
impl From<(f64, f64)> for ImPlotRange {
fn from(from: (f64, f64)) -> Self {
ImPlotRange {
Min: from.0,
Max: from.1,
}
}
}
impl From<ImVec2> for ImPlotRange {
fn from(from: ImVec2) -> Self {
ImPlotRange {
Min: from.x as f64,
Max: from.y as f64,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_implot_range_conversions() {
let range1: ImPlotRange = (0.0..10.0).into();
assert_eq!(range1.Min, 0.0);
assert_eq!(range1.Max, 10.0);
let range2: ImPlotRange = [1.0, 5.0].into();
assert_eq!(range2.Min, 1.0);
assert_eq!(range2.Max, 5.0);
let range3: ImPlotRange = (2.0, 8.0).into();
assert_eq!(range3.Min, 2.0);
assert_eq!(range3.Max, 8.0);
}
}