Expand description
This is a library with types and behaviour inspired by the PMBOK Guide 7th edition.
Modules§
- duration
- A duration is a unit of time that represents the amount of time required to complete a task.
- money
- 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
MultiCurrencyAmountthat keeps each currency separate rather than silently combining them. - person
- A person can either be a resource, a team member or a stakeholder.
- project
- 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.
- resources
- 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.
- stakeholders
- A stakeholder is a person or organization with an interest in the project: either an
Individual(with contact details viaperson::Person) or anOrganization(identified by name), each optionally carrying a description of that interest. - task
- 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.
- title
- A human-readable name for a domain entity: trimmed, non-empty, length-capped, but otherwise unrestricted in content.
Structs§
- Uuid
- A Universally Unique Identifier (UUID).