---
docgen:
  source: npm/skills/doc-files/js/units-rs.mjs
  crc: 11099381
  score: 100
---

# units-rs.mjs

## Огляд

Файл аналізує рядки для визначення структури та елементів модуля. Він ітерує по рядках для визначення глибини, обробляє рядкові літерали для визначення зміщення, змінює глибину при зустрічі відкриваючої чи закриваючої фігу, видаляє відкриті блоки зі стека, перевіряє наявність атрибутів експонування, визначає декларації на верхньому рівні чи в модулях, а також витягує тіло функції та збирає виклики інших юнітів у тілі функції.

## Поведінка

1. Скан файлу по рядках.
2. Ітерація по рядках для визначення глибини.
3. Обробка рядкових літералів для визначення зміщення.
4. Зміна глибини при зустрічі відкриваючої фігу.
5. Зміна глибини при зустрічі закриваючої фігу.
6. Видалення відкритих блоків з стека.
7. Перевірка наявності атрибутів експонування.
8. Визначення декларацій на верхньому рівні або в модулях.
9. Визначення публічних функцій, структур, перерахувань, трейтів, типів.
10. Витягування тіла функції через пошук закриваючої фігу.
11. Збір викликів інших юнітів у тілі функції.

## Публічний API

extractUnitsRs — Визначає top-level і impl-методи через підрахунок дужок по рядках. Обмеження: рядкові літерали з `{`/`}` всередині `{}` можуть дати хибну глибину.

## Гарантії поведінки

- Read-only: файл не виконує операцій запису у файлову систему.
- Не звертається до мережі.
