pub struct ResearchProject {
pub name: String,
pub description: String,
pub research_area: ResearchArea,
pub status: ProjectStatus,
pub researchers: Vec<Researcher>,
pub funding: Option<FundingInfo>,
pub timeline: ProjectTimeline,
pub experiments: Vec<Experiment>,
pub publications: Vec<Publication>,
pub settings: ProjectSettings,
pub created_at: DateTime<Utc>,
pub modified_at: DateTime<Utc>,
}Expand description
Main research project coordinator
Fields§
§name: StringProject name
description: StringProject description
research_area: ResearchAreaResearch area classification
status: ProjectStatusProject status
researchers: Vec<Researcher>List of researchers
funding: Option<FundingInfo>Funding information
timeline: ProjectTimelineProject timeline
experiments: Vec<Experiment>Experiments in this project
publications: Vec<Publication>Publications related to this project
settings: ProjectSettingsProject settings
created_at: DateTime<Utc>Creation timestamp
modified_at: DateTime<Utc>Last modified timestamp
Implementations§
Source§impl ResearchProject
impl ResearchProject
Sourcepub fn description(self, description: &str) -> Self
pub fn description(self, description: &str) -> Self
Set project description
Sourcepub fn research_area(self, area: ResearchArea) -> Self
pub fn research_area(self, area: ResearchArea) -> Self
Set research area
Sourcepub fn add_researcher(self, name: &str, email: &str) -> Self
pub fn add_researcher(self, name: &str, email: &str) -> Self
Add a researcher to the project
Sourcepub fn funding(self, funding: FundingInfo) -> Self
pub fn funding(self, funding: FundingInfo) -> Self
Set funding information
Sourcepub fn enable_reproducibility(self, enabled: bool) -> Self
pub fn enable_reproducibility(self, enabled: bool) -> Self
Enable reproducibility tracking
Sourcepub fn add_experiment(&mut self, experiment: Experiment) -> Result<()>
pub fn add_experiment(&mut self, experiment: Experiment) -> Result<()>
Add an experiment to the project
Sourcepub fn add_publication(&mut self, publication: Publication) -> Result<()>
pub fn add_publication(&mut self, publication: Publication) -> Result<()>
Add a publication to the project
Sourcepub fn generate_summary_report(&self) -> String
pub fn generate_summary_report(&self) -> String
Generate project summary report
Trait Implementations§
Source§impl Clone for ResearchProject
impl Clone for ResearchProject
Source§fn clone(&self) -> ResearchProject
fn clone(&self) -> ResearchProject
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ResearchProject
impl Debug for ResearchProject
Source§impl<'de> Deserialize<'de> for ResearchProject
impl<'de> Deserialize<'de> for ResearchProject
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ResearchProject
impl RefUnwindSafe for ResearchProject
impl Send for ResearchProject
impl Sync for ResearchProject
impl Unpin for ResearchProject
impl UnwindSafe for ResearchProject
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.