1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Copyright (c) 2025 Junior Sundar
//
// SPDX-License-Identifier: BSD-3-Clause
use crate;
use Rng;
/// The base trait for all goal definitions.
///
/// A `Goal` represents the termination condition for a planner. This trait is the minimum
/// requirement for any goal.
/// A `Goal` that is also a region
///
/// `Goal<S>` makes this a **subtrait** of `Goal`. Any type that implements `GoalRegion` must also
/// implement `Goal`.
/// A `GoalRegion` that can be sampled directly.
///
/// It is a subtrait of `GoalRegion`, so any implementor must also provide `distance_goal` and
/// `is_satisfied` methods.