todotxt_rs

Crates.iotodotxt_rs
lib.rstodotxt_rs
version0.1.1
created_at2025-11-15 15:59:24.346345+00
updated_at2025-11-19 19:28:40.7698+00
descriptionA fast, lightweight parser for the todo.txt file format.
homepage
repositoryhttps://github.com/konstanta-asya/todo_parser
max_upload_size
id1934505
size37,561
Asya Konstantynovska (konstanta-asya)

documentation

README

todotxt-rs

Простий та швидкий парсер для формату todo.txt, написаний на Rust.

Опис

Цей інструмент є бібліотекою та CLI-утилітою, яка використовує pest для повного синтаксичного аналізу файлів .todo.txt. Він коректно розпізнає всі стандартні компоненти специфікації todo.txt.


Посиалння на Crates.io

https://crates.io/crates/todotxt_rs

Граматика

Парсер розпізнає наступні компоненти у правильному порядку:

Компоненти на початку рядка (впорядковані):

  • Виконання: x (наприклад, x 2025-11-12 ...)
  • Пріоритет: (A) (наприклад, (A) Важливе завдання)
  • Дата створення: YYYY-MM-DD (наприклад, 2025-11-12 ...)

Компоненти опису (невпорядковані):

  • Проєкт: +назва_проєкту
  • Контекст: @назва_контексту
  • Дата виконання: due:YYYY-MM-DD
  • Текст: Весь інший текст, що складає опис завдання.

Поточний Стан

Проєкт повністю реалізовано згідно з вимогами.

Парсер успішно обробляє всі перераховані вище правила граматики, включаючи статус виконання, пріоритети, дати та теги.

Весь код відформатовано (cargo fmt), проаналізовано лінтером (cargo clippy), та повністю покрито юніт-тестами (12 passed), які знаходяться у директорії tests/.


Використання CLI

  1. Клонуйте репозиторій:

    git clone [https://github.com/konstanta-asya/todo_parser](https://github.com/konstanta-asya/todo_parser)
    cd todo_parser
    
  2. Запустіть за допомогою cargo (передавши шлях до файлу):

    cargo run -- todo.txt
    
  3. Або запустіть за допомогою make:

    make run ARGS="todo.txt"
    

Команди розробки (Makefile)

Цей проєкт використовує Makefile для автоматизації типових завдань:

  • make check: Запускає fmt, lint та test (рекомендовано перед комітом).
  • make test: Запускає всі юніт-тести.
  • make run ARGS="...": Запускає програму з переданими аргументами.
  • make build: Збирає релізну версію проєкту.
  • make fmt: Форматує код.
  • make lint: Запускає clippy.
Commit count: 0

cargo fmt