pub struct Cff {Show 21 fields
pub cff_version: Version,
pub message: String,
pub title: String,
pub work_type: Option<WorkType>,
pub version: Option<String>,
pub commit: Option<String>,
pub date_released: Option<Date>,
pub abstract_text: Option<String>,
pub keywords: Vec<String>,
pub url: Option<Url>,
pub repository: Option<Url>,
pub repository_artifact: Option<Url>,
pub repository_code: Option<Url>,
pub license: Option<License>,
pub license_url: Option<Url>,
pub authors: Vec<Name>,
pub contact: Vec<Name>,
pub doi: Option<String>,
pub identifiers: Vec<Identifier>,
pub preferred_citation: Option<Reference>,
pub references: Vec<Reference>,
}Expand description
The top-level CFF document.
This contains the citation metadata for a project, and may also contain reference information (the project’s bibligraphy).
Fields§
§cff_version: VersionVersion of the CFF specification this document conforms to.
This is required and must be non-empty.
message: StringWhat to do with the citation metadata, in a human-readable message.
This is required and must be non-empty.
§Examples
- “If you use this software, please cite it using the metadata from this file.”
- “Please cite this software using these metadata.”
- “Please cite this software using the metadata from ‘preferred-citation’.”
- “If you use this dataset, please cite it using the metadata from this file.”
- “Please cite this dataset using these metadata.”
- “Please cite this dataset using the metadata from ‘preferred-citation’.”
title: StringThe name of the work.
This is required and must be non-empty.
work_type: Option<WorkType>The type of the work.
version: Option<String>Version of the work.
There is no requirement that this be semver.
commit: Option<String>The commit hash or revision number of the software version.
By convention:
- if this is a Git hash, it should be bare lowercase hex, e.g.
1ff847d81f29c45a3a1a5ce73d38e45c2f319bba; - if this is a decimal revision or build number, it should be preceded
by a label, e.g.
Revision: 8612.
date_released: Option<Date>The date the work has been released.
abstract_text: Option<String>A description of the work.
keywords: Vec<String>Keywords that describe the work.
url: Option<Url>The URL of a landing page/website for the software or dataset.
repository: Option<Url>The URL of the work in a repository/archive.
This is to be used when the repository is neither a source code
repository nor a build artifact repository. For source code, use the
repository_code field; for binary releases or other built forms, use
the repository_artifact field.
repository_artifact: Option<Url>The URL of the work in a build artifact/binary repository.
repository_code: Option<Url>The URL of the work in a source code repository.
license: Option<License>SPDX license expression(s).
license_url: Option<Url>The URL of the license text under which the work is licensed.
This should only be used for non-standard licenses not included in the SPDX License List.
The authors of the work.
This is required and must contain at least one author.
contact: Vec<Name>The contact person, group, company, etc. for the work.
doi: Option<String>The DOI for the work.
Use this if the work has a single DOI. Otherwise, use the identifiers
field.
Note that the DOI is not parsed or validated in any way.
identifiers: Vec<Identifier>The identifiers for the work.
preferred_citation: Option<Reference>A reference to another work that should be cited instead of the work.
Note that the principles of software citation and data citation require that software should be cited on the same basis as any other research product such as a paper or a book. Adding a different preferred citation may result in a violation of the respective primary principle, “Importance”, when others cite this work.
references: Vec<Reference>Reference(s) to other creative works.
Similar to a list of references in a paper, references of the software or dataset may include other software (dependencies), or other research products that the software or dataset builds on, but not work describing the software or dataset.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Cff
impl<'de> Deserialize<'de> for Cff
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>,
impl Eq for Cff
impl StructuralPartialEq for Cff
Auto Trait Implementations§
impl Freeze for Cff
impl RefUnwindSafe for Cff
impl Send for Cff
impl Sync for Cff
impl Unpin for Cff
impl UnwindSafe for Cff
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.