From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <yew-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id A1E311FF195 for <inbox@lore.proxmox.com>; Fri, 30 May 2025 14:22:20 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A26AE2E7D4; Fri, 30 May 2025 14:22:36 +0200 (CEST) From: Dominik Csapak <d.csapak@proxmox.com> To: yew-devel@lists.proxmox.com Date: Fri, 30 May 2025 14:21:42 +0200 Message-Id: <20250530122202.2779300-1-d.csapak@proxmox.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.022 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [yew-devel] [PATCH yew-comp 00/20] refactor and improve rrd graph code X-BeenThere: yew-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Yew framework devel list at Proxmox <yew-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/yew-devel>, <mailto:yew-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/yew-devel/> List-Post: <mailto:yew-devel@lists.proxmox.com> List-Help: <mailto:yew-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/yew-devel>, <mailto:yew-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Yew framework devel list at Proxmox <yew-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: yew-devel-bounces@lists.proxmox.com Sender: "yew-devel" <yew-devel-bounces@lists.proxmox.com> This series aims to make the code of the rrd graphs more readable and maintanable, by: * moving code into it's own directory/file structure * move code/structs together that belong together thematically * factour out calculation code from graph component construction * documenting relevant functions * removing unnecessary computations While the code now sometimes iterates over the data multiple times to 1. create the baseline data 2. create the actual components the first part is now only done when necessary (when data/time changes, when the user selects a new range) and not every time the graph is redrawn, e.g. when the user moves the curser over the data. So all in all this should do less work than before. Also this fixes some panics when dealing with edge cases (e.g. clicking on empty graphs, having a range selected then changing the underlying data so that the range is not there anymore, ect.) While at it, remove the old rrd graph code that used uplot. This is not in use anywhere anymore but can be easily restored if necessary. Future work could be to include more than two series. This can be done later though, since we don't require that at the moment. Dominik Csapak (20): remove old rrd uplot code rrd: refactor code for compute_min_max rrd: move into own module rrd: move unit calculation to own module rrd: units: add tests rrd: units: simplify calculations for get_grid_unit_base rrd: remove unnecessary `no_data` field rrd: align tooltip directly to pointer position rrd: use 'cross_pos' state instead of 'draw_cross' rrd: give all elements in svg keys rrd: simplify toggle Msg rrd: remove wrongly annotated lifetime rrd: refactor series related struct and functions into own module rrd: clamp view range when time_data changes rrd: refactor grid data computation rrd: introduce GraphSpace struct and use it to precalculate graph data rrd: precalculate the grid line and label positions rrd: calculate series svg data only when necessary rrd: refactor selection rectangle calculation rrd: refactor the cross position calculation js-helper-module.js | 18 - src/lib.rs | 19 +- src/rrd/graph.rs | 726 ++++++++++++++++++++++++++++ src/rrd/graph_space.rs | 147 ++++++ src/rrd/grid.rs | 147 ++++++ src/rrd/mod.rs | 11 + src/rrd/series.rs | 96 ++++ src/rrd/units.rs | 326 +++++++++++++ src/rrd_graph.rs | 169 ------- src/rrd_graph_new.rs | 1038 ---------------------------------------- 10 files changed, 1455 insertions(+), 1242 deletions(-) create mode 100644 src/rrd/graph.rs create mode 100644 src/rrd/graph_space.rs create mode 100644 src/rrd/grid.rs create mode 100644 src/rrd/mod.rs create mode 100644 src/rrd/series.rs create mode 100644 src/rrd/units.rs delete mode 100644 src/rrd_graph.rs delete mode 100644 src/rrd_graph_new.rs -- 2.39.5 _______________________________________________ yew-devel mailing list yew-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/yew-devel