Генератор структур Rust
Генератор структур Rust дає відправну точку за одним зразком; яке поле насправді необов'язкове, показує власна схема API.
🔒 Цей інструмент працює повністю у вашому браузері. Ваші файли ніколи не завантажуються на сервер.
Розробник
Генератор структур Rust
Попередній перегляд інтерфейсу — без завантаження та зовнішніх сервісів.
Структури Rust
Три вкладені структури з #[derive(Serialize, Deserialize, Debug)], user_id перейменовано з userId, а email типізовано як Option<String>, бо у зразку було null.
Як працює генератор структур Rust
- Вставте показовий зразок JSON — такий, де заповнене кожне необов'язкове поле, а не лише мінімальний випадок.
- Оберіть derive-макроси та чи потрібно перейменовувати поля в snake_case за допомогою атрибутів serde rename.
- Скопіюйте структури у свій crate і звірте типи Option з тим, що насправді гарантує API.
FAQ
Чому деякі поля — Option?
Тому що у зразку там було null, або поле було відсутнє. Поле, яке завжди присутнє у вашому зразку, буде згенероване як звичайний тип, що спричинить паніку при десеріалізації, щойно API одного разу його пропустить.
Чи дає один зразок JSON правильні типи?
Він дає типи, узгоджені з цим зразком. Випадково малі цілі числа стають i64, а поле, яке в одній відповіді рядок, а в іншій число, не буде виявлено. Звіряйтеся зі схемою API.
А як щодо перейменування в snake_case?
Угода Rust вимагає полів snake_case, тоді як більшість JSON API використовують camelCase. Генерування атрибутів serde rename зберігає ідіоматичність з обох боків без ручного шару відповідності.
Порівняння
| Функція | Online Tool Store | CLI-скрипт | Плагін для IDE |
|---|---|---|---|
| Включені derive serde | ✓ | ✗ | ✓ |
| Option для nullable | ✓ | ✗ | ✓ |
| Нічого не завантажується | ✓ | Локально | ✗ |
| Не потребує встановлення | ✓ | ✗ | ✓ |
Генератор структур Rust дає відправну точку за одним зразком; яке поле насправді необов'язкове, показує власна схема API.