From b4f61085ceab6baec10b7a55983c6f6f22acd4f5 Mon Sep 17 00:00:00 2001 From: ApsisRS contributors Date: Fri, 2 Oct 2026 01:49:32 +0800 Subject: [PATCH] docs: bilingual module docs for the ops and sim layers --- crates/ops/apsis-conflict/src/conflict.rs | 2 ++ crates/ops/apsis-conflict/src/detect.rs | 2 ++ crates/ops/apsis-conflict/src/lib.rs | 2 ++ crates/ops/apsis-resource/src/error.rs | 2 ++ crates/ops/apsis-resource/src/lib.rs | 2 ++ crates/ops/apsis-resource/src/resource.rs | 2 ++ crates/ops/apsis-resource/src/window.rs | 2 ++ crates/ops/apsis-schedule/src/error.rs | 2 ++ crates/ops/apsis-schedule/src/lib.rs | 2 ++ crates/ops/apsis-schedule/src/placement.rs | 2 ++ crates/ops/apsis-schedule/src/schedule.rs | 2 ++ crates/ops/apsis-scheduler/src/greedy.rs | 2 ++ crates/ops/apsis-scheduler/src/improve.rs | 2 ++ crates/ops/apsis-scheduler/src/lib.rs | 2 ++ crates/ops/apsis-scheduler/src/planner.rs | 2 ++ crates/ops/apsis-scheduler/src/sweep.rs | 2 ++ crates/ops/apsis-task/src/error.rs | 2 ++ crates/ops/apsis-task/src/lib.rs | 2 ++ crates/ops/apsis-task/src/precedence.rs | 2 ++ crates/ops/apsis-task/src/task.rs | 2 ++ crates/sim/apsis-event/src/event.rs | 2 ++ crates/sim/apsis-event/src/lib.rs | 2 ++ crates/sim/apsis-event/src/queue.rs | 2 ++ crates/sim/apsis-output/src/lib.rs | 2 ++ crates/sim/apsis-output/src/record.rs | 2 ++ crates/sim/apsis-output/src/recorder.rs | 2 ++ crates/sim/apsis-output/src/trace.rs | 2 ++ crates/sim/apsis-scenario/src/error.rs | 2 ++ crates/sim/apsis-scenario/src/lib.rs | 2 ++ crates/sim/apsis-scenario/src/parse.rs | 2 ++ crates/sim/apsis-scenario/src/scenario.rs | 2 ++ crates/sim/apsis-sim-engine/src/engine.rs | 2 ++ crates/sim/apsis-sim-engine/src/lib.rs | 2 ++ crates/sim/apsis-sim-engine/src/outcome.rs | 2 ++ crates/sim/apsis-sim/src/activity.rs | 2 ++ crates/sim/apsis-sim/src/error.rs | 2 ++ crates/sim/apsis-sim/src/lib.rs | 2 ++ crates/sim/apsis-sim/src/session.rs | 2 ++ crates/sim/apsis-sim/src/simulation.rs | 2 ++ 39 files changed, 78 insertions(+) diff --git a/crates/ops/apsis-conflict/src/conflict.rs b/crates/ops/apsis-conflict/src/conflict.rs index 2d2a8fd..939d9af 100644 --- a/crates/ops/apsis-conflict/src/conflict.rs +++ b/crates/ops/apsis-conflict/src/conflict.rs @@ -1,4 +1,6 @@ //! The conflict type and the report that collects them. +//! +//! 冲突类型以及收集它们的报告。 use apsis_resource::ResourceId; use apsis_task::TaskId; diff --git a/crates/ops/apsis-conflict/src/detect.rs b/crates/ops/apsis-conflict/src/detect.rs index e0ebbae..595844a 100644 --- a/crates/ops/apsis-conflict/src/detect.rs +++ b/crates/ops/apsis-conflict/src/detect.rs @@ -1,4 +1,6 @@ //! The conflict detection itself. +//! +//! 冲突检测本身。 use crate::conflict::{Conflict, ConflictKind, ConflictReport}; use apsis_resource::{ResourceId, ResourceSet}; diff --git a/crates/ops/apsis-conflict/src/lib.rs b/crates/ops/apsis-conflict/src/lib.rs index 2b88791..44ab762 100644 --- a/crates/ops/apsis-conflict/src/lib.rs +++ b/crates/ops/apsis-conflict/src/lib.rs @@ -1,5 +1,7 @@ //! Resource and time conflict detection. //! +//! 资源与时间冲突检测。 +//! //! A schedule can be wrong in several ways, and this crate finds them. It //! reports conflicts rather than refusing them, so that a plan loaded from a //! file can be checked in full and every problem listed at once instead of diff --git a/crates/ops/apsis-resource/src/error.rs b/crates/ops/apsis-resource/src/error.rs index cabb61c..48ec758 100644 --- a/crates/ops/apsis-resource/src/error.rs +++ b/crates/ops/apsis-resource/src/error.rs @@ -1,4 +1,6 @@ //! Errors reported while building or querying a resource. +//! +//! 构建或查询资源时报告的错误。 use core::fmt; diff --git a/crates/ops/apsis-resource/src/lib.rs b/crates/ops/apsis-resource/src/lib.rs index b6820ff..d8959da 100644 --- a/crates/ops/apsis-resource/src/lib.rs +++ b/crates/ops/apsis-resource/src/lib.rs @@ -1,5 +1,7 @@ //! Resource modeling for satellite operations. //! +//! 卫星运行的资源建模。 +//! //! A resource is anything a task can occupy: a satellite, a ground station, a //! transmitter, an onboard recorder. This crate models the two things a //! scheduler needs to know about one: when it is available, and how much of diff --git a/crates/ops/apsis-resource/src/resource.rs b/crates/ops/apsis-resource/src/resource.rs index 4613e47..b199140 100644 --- a/crates/ops/apsis-resource/src/resource.rs +++ b/crates/ops/apsis-resource/src/resource.rs @@ -1,4 +1,6 @@ //! Resources, their availability, and their capacity. +//! +//! 资源、其可用性与容量。 use crate::error::{ResourceError, ResourceErrorKind}; use crate::window::{Interval, Window, merge_windows, subtract_window}; diff --git a/crates/ops/apsis-resource/src/window.rs b/crates/ops/apsis-resource/src/window.rs index 98e438f..8e94702 100644 --- a/crates/ops/apsis-resource/src/window.rs +++ b/crates/ops/apsis-resource/src/window.rs @@ -1,4 +1,6 @@ //! Availability windows and the interval algebra over them. +//! +//! 可用性窗口以及其上的区间代数。 use crate::error::{ResourceError, ResourceErrorKind}; use core::fmt; diff --git a/crates/ops/apsis-schedule/src/error.rs b/crates/ops/apsis-schedule/src/error.rs index 1d2b511..3ba9f4b 100644 --- a/crates/ops/apsis-schedule/src/error.rs +++ b/crates/ops/apsis-schedule/src/error.rs @@ -1,4 +1,6 @@ //! Errors reported while building or evaluating a schedule. +//! +//! 构建或评估调度时报告的错误。 use core::fmt; diff --git a/crates/ops/apsis-schedule/src/lib.rs b/crates/ops/apsis-schedule/src/lib.rs index 6f212a0..5cbf43d 100644 --- a/crates/ops/apsis-schedule/src/lib.rs +++ b/crates/ops/apsis-schedule/src/lib.rs @@ -1,5 +1,7 @@ //! Schedule representation and evaluation. //! +//! 调度的表示与评估。 +//! //! A schedule is the answer a scheduler produces: for each task, when it runs //! and on which resources. This crate holds that answer and evaluates it. //! It does not decide the placements, which is the job of `apsis-scheduler`; diff --git a/crates/ops/apsis-schedule/src/placement.rs b/crates/ops/apsis-schedule/src/placement.rs index 45269c1..43460be 100644 --- a/crates/ops/apsis-schedule/src/placement.rs +++ b/crates/ops/apsis-schedule/src/placement.rs @@ -1,4 +1,6 @@ //! Placements and the evaluation of a schedule. +//! +//! 放置以及调度的评估。 use apsis_resource::ResourceId; use apsis_task::TaskId; diff --git a/crates/ops/apsis-schedule/src/schedule.rs b/crates/ops/apsis-schedule/src/schedule.rs index c75e5ea..bd8cea3 100644 --- a/crates/ops/apsis-schedule/src/schedule.rs +++ b/crates/ops/apsis-schedule/src/schedule.rs @@ -1,4 +1,6 @@ //! The schedule itself. +//! +//! 调度本身。 use crate::error::{ScheduleError, ScheduleErrorKind}; use crate::placement::{Evaluation, Placement, ResourceUsage}; diff --git a/crates/ops/apsis-scheduler/src/greedy.rs b/crates/ops/apsis-scheduler/src/greedy.rs index 66a7af0..42f5e0c 100644 --- a/crates/ops/apsis-scheduler/src/greedy.rs +++ b/crates/ops/apsis-scheduler/src/greedy.rs @@ -1,4 +1,6 @@ //! The building blocks a greedy scheduler needs. +//! +//! 贪心调度器所需的基本构件。 use apsis_resource::{ResourceId, ResourceSet}; use apsis_schedule::Schedule; diff --git a/crates/ops/apsis-scheduler/src/improve.rs b/crates/ops/apsis-scheduler/src/improve.rs index f28f92e..ee4f1ed 100644 --- a/crates/ops/apsis-scheduler/src/improve.rs +++ b/crates/ops/apsis-scheduler/src/improve.rs @@ -1,5 +1,7 @@ //! A second pass that tries to place what the greedy first pass left out. //! +//! 第二遍,尝试放置贪心第一遍所遗漏的。 +//! //! The greedy pass places each task at the earliest time it fits and never //! moves a placement once it is made, so a task that does not fit is lost //! even when moving a placement would make room. This pass addresses the diff --git a/crates/ops/apsis-scheduler/src/lib.rs b/crates/ops/apsis-scheduler/src/lib.rs index 28f8ff5..3b1632d 100644 --- a/crates/ops/apsis-scheduler/src/lib.rs +++ b/crates/ops/apsis-scheduler/src/lib.rs @@ -1,5 +1,7 @@ //! Scheduling algorithms for satellite task planning. //! +//! 卫星任务规划的调度算法。 +//! //! A scheduler takes a list of tasks and a set of resources and produces a //! schedule. This crate provides a greedy scheduler and the pieces needed to //! build others. diff --git a/crates/ops/apsis-scheduler/src/planner.rs b/crates/ops/apsis-scheduler/src/planner.rs index f257b38..28ba7f4 100644 --- a/crates/ops/apsis-scheduler/src/planner.rs +++ b/crates/ops/apsis-scheduler/src/planner.rs @@ -1,4 +1,6 @@ //! The greedy planner. +//! +//! 贪心规划器。 use crate::greedy::infeasible_tasks; use crate::improve::{ImprovementSettings, improve}; diff --git a/crates/ops/apsis-scheduler/src/sweep.rs b/crates/ops/apsis-scheduler/src/sweep.rs index a4efe80..dabdd1b 100644 --- a/crates/ops/apsis-scheduler/src/sweep.rs +++ b/crates/ops/apsis-scheduler/src/sweep.rs @@ -1,5 +1,7 @@ //! The earliest start search, done in one pass over the schedule. //! +//! 最早开始搜索,对调度做一遍完成。 +//! //! The sequential form asks the same question in a loop: it lists every time //! at which feasibility could change, sorts them, and tests each in turn until //! one passes. That is correct but it recomputes the busy profile of every diff --git a/crates/ops/apsis-task/src/error.rs b/crates/ops/apsis-task/src/error.rs index e6d9acb..25511df 100644 --- a/crates/ops/apsis-task/src/error.rs +++ b/crates/ops/apsis-task/src/error.rs @@ -1,4 +1,6 @@ //! Errors reported while building or querying a task. +//! +//! 构建或查询任务时报告的错误。 use core::fmt; diff --git a/crates/ops/apsis-task/src/lib.rs b/crates/ops/apsis-task/src/lib.rs index 8ad8508..7511c08 100644 --- a/crates/ops/apsis-task/src/lib.rs +++ b/crates/ops/apsis-task/src/lib.rs @@ -1,5 +1,7 @@ //! Task modeling for satellite operations. //! +//! 卫星运行的任务建模。 +//! //! A task is a unit of work that a scheduler places on a set of resources. It //! carries everything a scheduler needs to decide whether and where to run //! it: how long it takes, when it may run, which resources it needs and in diff --git a/crates/ops/apsis-task/src/precedence.rs b/crates/ops/apsis-task/src/precedence.rs index d4de39f..0ae9999 100644 --- a/crates/ops/apsis-task/src/precedence.rs +++ b/crates/ops/apsis-task/src/precedence.rs @@ -1,5 +1,7 @@ //! Precedence constraints between tasks. //! +//! 任务之间的先后约束。 +//! //! A precedence constraint says that one task must finish before another //! starts. A set of such constraints forms a directed acyclic graph, and a //! scheduler must respect it: a task cannot be placed until every task that diff --git a/crates/ops/apsis-task/src/task.rs b/crates/ops/apsis-task/src/task.rs index ebd65b2..ae95ad7 100644 --- a/crates/ops/apsis-task/src/task.rs +++ b/crates/ops/apsis-task/src/task.rs @@ -1,4 +1,6 @@ //! Tasks, their requirements, and the set that holds them. +//! +//! 任务、其需求,以及保存它们的集合。 use crate::error::{TaskError, TaskErrorKind}; use apsis_resource::ResourceId; diff --git a/crates/sim/apsis-event/src/event.rs b/crates/sim/apsis-event/src/event.rs index 79afdfc..f379907 100644 --- a/crates/sim/apsis-event/src/event.rs +++ b/crates/sim/apsis-event/src/event.rs @@ -1,4 +1,6 @@ //! The event type and its identifier. +//! +//! 事件类型及其标识符。 use core::fmt; diff --git a/crates/sim/apsis-event/src/lib.rs b/crates/sim/apsis-event/src/lib.rs index 8324e8b..fc868d6 100644 --- a/crates/sim/apsis-event/src/lib.rs +++ b/crates/sim/apsis-event/src/lib.rs @@ -1,5 +1,7 @@ //! Simulation event types and event queue. //! +//! 仿真事件类型与事件队列。 +//! //! A discrete-event simulation advances by jumping from one event to the //! next rather than by stepping through every instant. This crate provides //! the queue that makes that possible: a priority queue ordered by time, diff --git a/crates/sim/apsis-event/src/queue.rs b/crates/sim/apsis-event/src/queue.rs index 2af8fe5..d07dc57 100644 --- a/crates/sim/apsis-event/src/queue.rs +++ b/crates/sim/apsis-event/src/queue.rs @@ -1,4 +1,6 @@ //! The event queue. +//! +//! 事件队列。 use crate::event::{Event, EventId}; use std::cmp::Ordering; diff --git a/crates/sim/apsis-output/src/lib.rs b/crates/sim/apsis-output/src/lib.rs index 0de4b67..01a092c 100644 --- a/crates/sim/apsis-output/src/lib.rs +++ b/crates/sim/apsis-output/src/lib.rs @@ -1,5 +1,7 @@ //! Simulation output recording. //! +//! 仿真输出记录。 +//! //! A simulation produces more output than a caller can act on at once: event //! times, the values a model computes as it runs, and the warnings it raises. //! This crate collects those into one trace, so that a run can be examined diff --git a/crates/sim/apsis-output/src/record.rs b/crates/sim/apsis-output/src/record.rs index 6398e41..f675c61 100644 --- a/crates/sim/apsis-output/src/record.rs +++ b/crates/sim/apsis-output/src/record.rs @@ -1,4 +1,6 @@ //! One recorded value. +//! +//! 一条被记录的值。 use core::fmt; diff --git a/crates/sim/apsis-output/src/recorder.rs b/crates/sim/apsis-output/src/recorder.rs index 07dd76b..b003613 100644 --- a/crates/sim/apsis-output/src/recorder.rs +++ b/crates/sim/apsis-output/src/recorder.rs @@ -1,4 +1,6 @@ //! Building a trace as a simulation runs. +//! +//! 在仿真运行过程中构建轨迹。 use crate::record::{Record, RecordKind}; use crate::trace::Trace; diff --git a/crates/sim/apsis-output/src/trace.rs b/crates/sim/apsis-output/src/trace.rs index b61241a..f06c8c3 100644 --- a/crates/sim/apsis-output/src/trace.rs +++ b/crates/sim/apsis-output/src/trace.rs @@ -1,4 +1,6 @@ //! The trace and its summaries. +//! +//! 轨迹及其各汇总。 use crate::record::{Record, RecordKind}; use std::collections::BTreeMap; diff --git a/crates/sim/apsis-scenario/src/error.rs b/crates/sim/apsis-scenario/src/error.rs index 64f743a..7ea8f49 100644 --- a/crates/sim/apsis-scenario/src/error.rs +++ b/crates/sim/apsis-scenario/src/error.rs @@ -1,4 +1,6 @@ //! Errors reported while building, loading, or validating a scenario. +//! +//! 构建、加载或校验场景时报告的错误。 use core::fmt; diff --git a/crates/sim/apsis-scenario/src/lib.rs b/crates/sim/apsis-scenario/src/lib.rs index 07f8764..82efddd 100644 --- a/crates/sim/apsis-scenario/src/lib.rs +++ b/crates/sim/apsis-scenario/src/lib.rs @@ -1,5 +1,7 @@ //! Scenario definition and loading. //! +//! 场景的定义与加载。 +//! //! A scenario is a simulation's initial conditions: the resources a plan may //! use, the tasks it must place, the precedence constraints between those //! tasks, and the limits the run should respect. It is the input a run is diff --git a/crates/sim/apsis-scenario/src/parse.rs b/crates/sim/apsis-scenario/src/parse.rs index 6e5af7b..cbd7580 100644 --- a/crates/sim/apsis-scenario/src/parse.rs +++ b/crates/sim/apsis-scenario/src/parse.rs @@ -1,4 +1,6 @@ //! Reading a scenario from its text form. +//! +//! 由其文本形式读取场景。 use crate::error::{ScenarioError, ScenarioErrorKind}; use crate::scenario::Scenario; diff --git a/crates/sim/apsis-scenario/src/scenario.rs b/crates/sim/apsis-scenario/src/scenario.rs index 71828cb..99ac588 100644 --- a/crates/sim/apsis-scenario/src/scenario.rs +++ b/crates/sim/apsis-scenario/src/scenario.rs @@ -1,4 +1,6 @@ //! The scenario type and its text form. +//! +//! 场景类型及其文本形式。 use crate::error::{ScenarioError, ScenarioErrorKind}; use apsis_resource::{Resource, ResourceSet}; diff --git a/crates/sim/apsis-sim-engine/src/engine.rs b/crates/sim/apsis-sim-engine/src/engine.rs index e9fcdfd..59bfcd0 100644 --- a/crates/sim/apsis-sim-engine/src/engine.rs +++ b/crates/sim/apsis-sim-engine/src/engine.rs @@ -1,4 +1,6 @@ //! The engine itself. +//! +//! 引擎本身。 use crate::outcome::{EngineOutcome, EngineState, StopReason}; use apsis_event::{Event, EventId, EventQueue}; diff --git a/crates/sim/apsis-sim-engine/src/lib.rs b/crates/sim/apsis-sim-engine/src/lib.rs index 7ceaff0..88f4f6f 100644 --- a/crates/sim/apsis-sim-engine/src/lib.rs +++ b/crates/sim/apsis-sim-engine/src/lib.rs @@ -1,5 +1,7 @@ //! Discrete-event simulation engine. //! +//! 离散事件仿真引擎。 +//! //! The engine advances a clock by jumping from one event to the next. It //! holds the event queue, the current simulation time, and the statistics a //! caller needs to judge a run. What an event means is the caller's: it diff --git a/crates/sim/apsis-sim-engine/src/outcome.rs b/crates/sim/apsis-sim-engine/src/outcome.rs index 37e482b..6ee0723 100644 --- a/crates/sim/apsis-sim-engine/src/outcome.rs +++ b/crates/sim/apsis-sim-engine/src/outcome.rs @@ -1,4 +1,6 @@ //! What a run produced and what the engine currently holds. +//! +//! 一次运行所产生的结果以及引擎当前所持有的状态。 use core::fmt; diff --git a/crates/sim/apsis-sim/src/activity.rs b/crates/sim/apsis-sim/src/activity.rs index 2704f21..e759d3d 100644 --- a/crates/sim/apsis-sim/src/activity.rs +++ b/crates/sim/apsis-sim/src/activity.rs @@ -1,4 +1,6 @@ //! What happens at an instant in a simulated timeline. +//! +//! 仿真时间线中某瞬时发生的事。 use apsis_task::TaskId; diff --git a/crates/sim/apsis-sim/src/error.rs b/crates/sim/apsis-sim/src/error.rs index cc82311..b6af0d8 100644 --- a/crates/sim/apsis-sim/src/error.rs +++ b/crates/sim/apsis-sim/src/error.rs @@ -1,4 +1,6 @@ //! Errors reported while preparing or starting a simulation. +//! +//! 准备或启动仿真时报告的错误。 use core::fmt; diff --git a/crates/sim/apsis-sim/src/lib.rs b/crates/sim/apsis-sim/src/lib.rs index 0eadb30..ba1a239 100644 --- a/crates/sim/apsis-sim/src/lib.rs +++ b/crates/sim/apsis-sim/src/lib.rs @@ -1,5 +1,7 @@ //! Simulation facade that integrates the simulation layer. //! +//! 整合仿真层的仿真门面。 +//! //! This crate is the single entry point to the simulation layer. It ties the //! four pieces together: a [`Scenario`] describes the initial conditions, the //! ops layer plans it, the engine runs the resulting timeline, and a diff --git a/crates/sim/apsis-sim/src/session.rs b/crates/sim/apsis-sim/src/session.rs index 3a69c4c..499fa54 100644 --- a/crates/sim/apsis-sim/src/session.rs +++ b/crates/sim/apsis-sim/src/session.rs @@ -1,4 +1,6 @@ //! Running a prepared simulation. +//! +//! 运行已准备的仿真。 use crate::activity::Activity; use crate::simulation::Simulation; diff --git a/crates/sim/apsis-sim/src/simulation.rs b/crates/sim/apsis-sim/src/simulation.rs index 27f26ed..9e1dc5f 100644 --- a/crates/sim/apsis-sim/src/simulation.rs +++ b/crates/sim/apsis-sim/src/simulation.rs @@ -1,4 +1,6 @@ //! Preparing a scenario for a run. +//! +//! 为一次运行准备场景。 use crate::activity::Activity; use crate::error::{SimulationError, SimulationErrorKind};