---
docgen:
  source: npm/rules/doc-files/js/units-rs.mjs
  crc: 114e9a0b
  score: 100
---

# units-rs.mjs

## Огляд

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

## Поведінка

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

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

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

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

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