Cff

Struct Cff 

Source
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: Version

Version of the CFF specification this document conforms to.

This is required and must be non-empty.

§message: String

What 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: String

The 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.

§authors: Vec<Name>

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 Clone for Cff

Source§

fn clone(&self) -> Cff

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Cff

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Cff

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Cff

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for Cff

Source§

fn eq(&self, other: &Cff) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Cff

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for Cff

Source§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,