Struct gedcomx::Name[][src]

#[non_exhaustive]
pub struct Name { pub id: Option<Id>, pub lang: Option<Lang>, pub sources: Vec<SourceReference>, pub analysis: Option<ResourceReference>, pub notes: Vec<Note>, pub confidence: Option<ConfidenceLevel>, pub attribution: Option<Attribution>, pub name_type: Option<NameType>, pub name_forms: Vec<NameForm>, pub date: Option<Date>, }
Expand description

A name of a person.

A Name is intended to represent a single variant of a person’s name. This means that nicknames, spelling variations, or other names (often distinguishable by a name type) should be modeled with separate instances of Name.

The name forms of a name contain alternate representations of the name. A Name MUST contain at least one name form, presumably a representation of the name that is considered proper and well formed in the person’s native, historical cultural context. Other name forms MAY be included, which can be used to represent this name in contexts where the native name form is not easily recognized and interpreted. Alternate forms are more likely in situations where conclusions are being analyzed across cultural context boundaries that have both language and writing script differences.

For example, a Korean name has a native Korean form, but can also have a Chinese form and a Roman/Latin form—three different name forms, but each representing the same name.

If more than one name form is provided, included name forms are presumed to be given in order of preference, with the most preferred name form in the first position in the list.

Examples

Consider the following: a Russian person with the birth name “Александр” (rendered as “Alexander” in English and in a Latin script) that also went by this name’s common nickname, “Саша” (rendered as “Sasha” in English).

It is tempting to think that this situation should be modeled with one Name instance that has several alternate NameForms. The model is not designed to be used in this way. Instead, this person’s names ought to be modeled such that the birth name and the nickname are modeled as two separate Name instances: one instance for the birth name, and one for the nickname. The type property MAY be provided to distinguish the birth name from the nickname. Each Name instance MAY have two NameForm instances: one with the native form of the name and another with the

Name1.type=http://gedcomx.org/BirthName
Name1.nameForms[0].fullText=Александр
Name1.nameForms[1].fullText=Alexander

Name2.type=http://gedcomx.org/Nickname
Name2.nameForms[0].fullText=Саша
Name2.nameForms[1].fullText=Sasha

Fields (Non-exhaustive)

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
id: Option<Id>

An identifier for the conclusion data. The id is to be used as a “fragment identifier” as defined by RFC 3986, Section 3.5.

lang: Option<Lang>

The locale identifier for the conclusion.

sources: Vec<SourceReference>

The list of references to the sources of related to this conclusion. Note that the sources referenced from conclusions are also considered to be sources of the entities that contain them. For example, a source associated with the Name of a Person is also source for the Person.

analysis: Option<ResourceReference>

A reference to the analysis document explaining the analysis that went into this conclusion. If provided, MUST resolve to an instance of Document of type Analysis.

notes: Vec<Note>

A list of notes about this conclusion.

confidence: Option<ConfidenceLevel>

The level of confidence the contributor has about the data.

attribution: Option<Attribution>

The attribution of this conclusion. If not provided, the attribution of the containing data set (e.g. file) of the conclusion is assumed.

name_type: Option<NameType>

The name type.

name_forms: Vec<NameForm>

The name form(s) that best express this name, usually representations considered proper and well formed in the person’s native, historical cultural context.

At least one name form MUST be provided. All included name forms SHOULD be representations of the same name, and NOT variants of the name (i.e., not nicknames or spelling variations).

date: Option<Date>

The date of applicability of the name.

Implementations

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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

Deserialize this value from the given Serde deserializer. Read more

Performs the conversion.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.