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
42
43
44
45
46
47
48
49
50
51
//! This is a library with types and behaviour inspired by the PMBOK Guide 7th edition.
/// A duration is a unit of time that represents the amount of time required to complete a task.
/// Monetary values, stored as an integer count of a currency's minor unit (e.g. cents).
/// Every amount carries its currency; costs come back as a `MultiCurrencyAmount` that
/// keeps each currency separate rather than silently combining them.
/// A person can either be a resource, a team member or a stakeholder.
/// A project ties everything else in this crate together: tasks (which can nest into subtasks
/// and carry time relationships to each other), the resources they engage, and the project's
/// stakeholders. It's the entry point for computing overall cost.
/// A resource is anything the project pays for. It's a named, cost-bearing thing with an
/// optional contact; its cost has two independent parts, either of which may be absent:
/// one-time purchases, and an hourly rate charged for the time a task engages it. The crate
/// imposes no taxonomy of what a resource *is* - that classification is project-specific.
/// A stakeholder is a person or organization with an interest in the project: either an
/// `Individual` (with contact details via [`person::Person`]) or an `Organization` (identified
/// by name), each optionally carrying a description of that interest.
/// A task is a unit of work needed to achieve the project's objectives. It can have a name, a
/// description, a start and finish date, a duration, a completed flag, and resources assigned to
/// it; it can also be nested into subtasks and related to other tasks in time.
/// A human-readable name for a domain entity: trimmed, non-empty, length-capped, but otherwise
/// unrestricted in content.
pub use Uuid;