Update documentation. Refactored grammems.rs

This commit is contained in:
AB
2020-12-30 23:44:58 +03:00
parent e628d941b9
commit 7ea77bdb1c

View File

@ -13,7 +13,7 @@ use crate::PerfectiveAspect::{Imperfective, Perfective};
use crate::Plurality::{Plural, Singular}; use crate::Plurality::{Plural, Singular};
use crate::Tense::{Inpresent, Past, Present}; use crate::Tense::{Inpresent, Past, Present};
use crate::Transitivity::{Intransitive, Transitive}; use crate::Transitivity::{Intransitive, Transitive};
use crate::VerbPerson::{First, Second, Third}; use crate::Person::{First, Second, Third};
use crate::Voice::{Active, Passive}; use crate::Voice::{Active, Passive};
use std::fmt; use std::fmt;
use std::str::FromStr; use std::str::FromStr;
@ -29,35 +29,36 @@ pub struct Grammem {
pub facts_raw: Vec<String>, pub facts_raw: Vec<String>,
} }
/// Часть речи
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum PartOfSpeech { pub enum PartOfSpeech {
/// прилагательное /// Прилагательное
Adjective, Adjective,
/// наречие /// Наречие
Adverb, Adverb,
/// местоименное наречие /// Местоименное наречие
AdverbPronominal, AdverbPronominal,
/// числительное-прилагательное /// Числительное-прилагательное
AdjectiveNumeral, AdjectiveNumeral,
/// местоимение-прилагательное /// Местоимение-прилагательное
AdjectivePronoun, AdjectivePronoun,
/// часть композита - сложного слова /// Часть композита - сложного слова
Composite, Composite,
/// союз /// Союз
Conjunction, Conjunction,
/// междометие /// Междометие
Interjection, Interjection,
/// числительное /// Числительное
Numeral, Numeral,
/// частица /// Частица
Particle, Particle,
/// предлог /// Предлог
Preposition, Preposition,
/// существительное /// Существительное
Noun, Noun,
/// местоимение-существительное /// Местоимение-существительное
AdjectiveNoun, AdjectiveNoun,
/// глагол /// Глагол
Verb, Verb,
} }
impl FromStr for PartOfSpeech { impl FromStr for PartOfSpeech {
@ -90,18 +91,31 @@ impl fmt::Display for PartOfSpeech {
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Fact { pub enum Fact {
/// Падеж
Case(Case), Case(Case),
/// Время глаголов
Tense(Tense), Tense(Tense),
/// Число
Plurality(Plurality), Plurality(Plurality),
/// Наклонение глагола
Mood(Mood), Mood(Mood),
/// Форма прилагательного
Adjective(Adjective), Adjective(Adjective),
/// Степень сравнения
ComparativeDegree(ComparativeDegree), ComparativeDegree(ComparativeDegree),
Person(VerbPerson), /// Лицо глагола
Person(Person),
/// Род
Gender(Gender), Gender(Gender),
/// Вид глагола
PerfectiveAspect(PerfectiveAspect), PerfectiveAspect(PerfectiveAspect),
/// Залог
Voice(Voice), Voice(Voice),
/// Одушевленность
Animacy(Animacy), Animacy(Animacy),
/// Переходность
Transitivity(Transitivity), Transitivity(Transitivity),
/// Прочие обозначения
Other(Other), Other(Other),
} }
impl fmt::Display for Fact { impl fmt::Display for Fact {
@ -110,108 +124,173 @@ impl fmt::Display for Fact {
} }
} }
/// Падеж
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Case { pub enum Case {
Nominative, //именительный /// Именительный
Genitive, //родительный Nominative,
Dative, //дательный /// Родительный
Accusative, //винительный Genitive,
Instrumental, //творительный /// Дательный
Prepositional, //предложный Dative,
Partitive, //партитив (второй родительный) /// Винительный
Locative, //местный (второй предложный) Accusative,
Vocative, //звательный /// Творительный
Instrumental,
/// Предложный
Prepositional,
/// Партитив (второй родительный)
Partitive,
/// Местный (второй предложный)
Locative,
/// Звательный
Vocative,
} }
/// Время глагола
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Tense { pub enum Tense {
Present, //настоящее /// Настоящее время
Inpresent, //непрошедшее Present,
Past, //прошедшее /// Непрошедшее время
Inpresent,
/// Прошедшее время
Past,
} }
/// Число
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Plurality { pub enum Plurality {
Plural, //настоящее /// Множественное
Singular, //непрошедшее Plural,
/// Единственное
Singular,
} }
/// Наклонение глагола
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Mood { pub enum Mood {
Gerunds, //деепричастие /// Деепричастие
Infinitive, //инфинитив Gerunds,
Participle, //причастие /// Инфинитив
Indicative, //изьявительное наклонение Infinitive,
Imperative, //повелительное наклонение /// Причастие
Participle,
/// Изьявительное наклонение
Indicative,
/// Повелительное наклонение
Imperative,
} }
/// Форма прилагательного
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Adjective { pub enum Adjective {
Short, //Краткое /// Краткое
Long, //Полное Short,
Possessive, //притяжательное /// Полное
Long,
/// Притяжательное
Possessive,
} }
/// Степень сравнения
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum ComparativeDegree { pub enum ComparativeDegree {
Superlative, //превосходная /// Превосходная
Comparative, //сравнительная Superlative,
/// Сравнительная
Comparative,
} }
/// Лицо глагола
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum VerbPerson { pub enum Person {
First, //1-е лицо /// 1-е лицо
Second, //2-е лицо First,
Third, //3-е лицо /// 2-е лицо
Second,
/// 3-е лицо
Third,
} }
/// Род
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Gender { pub enum Gender {
Masculine, //мужской род /// Мужской
Feminine, //женский род Masculine,
Neuter, //средний род /// Женский
Feminine,
/// Средний
Neuter,
} }
/// Вид глагола
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum PerfectiveAspect { pub enum PerfectiveAspect {
Perfective, //совершенный /// Совершенный
Imperfective, //несовершенный Perfective,
/// Несовершенный
Imperfective,
} }
/// Залог
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Voice { pub enum Voice {
Passive, //страдательный залог /// Страдательный залог
Active, //действительный залог Passive,
/// Действительный залог
Active,
} }
/// Одушевленность
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Animacy { pub enum Animacy {
Animate, //одушевленное /// Одушевленное
Inanimate, //неодушевленное Animate,
/// Неодушевленное
Inanimate,
} }
/// Переходность глагола
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Transitivity { pub enum Transitivity {
Transitive, //переходный глагол /// Переходный глагол
Intransitive, //непереходный глагол Transitive,
/// Непереходный глагол
Intransitive,
} }
/// Прочие обозначения
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub enum Other { pub enum Other {
Parenthesis, //вводное слово /// Вводное слово
Geo, //географическое название Parenthesis,
Awkward, //образование формы затруднено /// Географическое название
ProperNoun, //имя собственное Geo,
Distorted, //искаженная форма /// Образование формы затруднено
CommonForm, //общая форма мужского и женского рода Awkward,
Obscene, //обсценная лексика /// Имя собственное
Patronymic, //отчество ProperNoun,
Predicative, //предикатив /// Искаженная форма
Informal, //разговорная форма Distorted,
Rare, //редко встречающееся слово /// Общая форма мужского и женского рода
Abbreviation, //сокращение CommonForm,
Obsolete, //устаревшая форма /// Обсценная лексика
FamilyName, //фамилия Obscene,
/// Отчество
Patronymic,
/// Предикатив
Predicative,
/// Разговорная форма
Informal,
/// Редко встречающееся слово
Rare,
/// Сокращение
Abbreviation,
/// Устаревшая форма
Obsolete,
/// Фамилия
FamilyName,
} }
impl FromStr for Fact { impl FromStr for Fact {