Форум программистов, компьютерный форум, киберфорум
Curry
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Rust + conrod

Запись от Curry размещена 21.09.2019 в 20:36
Показов 4654 Комментарии 9

Всё началось с того, что NeoMatrix придумал программистам задачку. Задачка была тривиальная и никому делать её не хотелось. А я решил, если уж делать, то на чём ни будь мало знакомом, используя задание с учебной целью. Rust я как то изучал немного, потом забыл. А язык интересный. Решил сделать на нём.
На https://crates.io удалось найти только одну GUI библиотечку (из за простоты назвать её фреймвёком ну никак нельзя), которая поставилась без продолжительного бития в бубен.
Это conrod.
Понравилось что в деле GUI-строения в Rust процветает модульный подход.
К примеру, графика может отрисовываться с помощью OpenGL (у меня этот вариант), а может через игровой движок piston, или через vulkan. Для кроссплатформенного создания окон используется отдельный крейт, для цикла обработки сообщений другой. То есть, в перспективе, можно пилить какую то свою часть.
Пока же интегрирующая всё это conrod сыровата и бледновата. Нет даже копипаста из/в поля редактирования текста.
Но, по самому минимуму, работает, что и демонстрирую
Нажмите на изображение для увеличения
Название: phone_db.PNG
Просмотров: 545
Размер:	40.7 Кб
ID:	5576
По желанию NeoMatrix-а телефоны сохраняются в текстовых файлах, а не в нормальной базе.
Имена файлов создаю по числовым идентификаторам сотовых операторов,а не именам операторов, потому как, кто его знает, какие названия у операторов могут быть, может с недопустимыми для имён файлов символами. Тем более, что у NeoMatrix-а linux, а пробелы в именах операторов бывают. Кодировка опять же.
В общем, по кодам имена файлов, а имена операторов первой строкой в файле.
Для простоты номера телефонов можно вводить только как 10 цифр без минусов и пр. Если NeoMatrix-у очень потребно вводить с минусами - приделаю.
Впереди номера подразумевается +7, что, впрочем, из картинки, думаю, ясно.
Программа выполняет только то что заказано - позволяет ввести номер, проверяет у Мегафона, какой это оператор и добавляет в базу.
Вставка из буфера обмена отсутствует, т.к. её нет в conrod. В принципе, можно повесить на горячую клавишу или отдельную кнопку вставку. Наверняка для Rust уже сделали крейт для кроссплатформенного использования буфера обмена.

Исходник phone_db.0.1.1.zip. Большую часть размера архива занимают шрифты которые взяты из демок к conrod-у.

Инструкция по сборке:
1. Установить rust. Линуксоиды наверняка предпочтут устаревшие версии из репок своих линуксов.
2. Убедится что cargo доступно в PATH.
3. Распаковать архив с исходниками, перейти в него и выполнить
Bash
1
cargo run
p.s. Black Fregat обнаружил что программа может не запускаться на виртуальной машине. Указанный выше архив теперь содержит указанное в комментариях исправление.
Размещено в Rust
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 9
Комментарии
  1. Старый комментарий
    Аватар для Black Fregat
    Code
    1
    2
    3
    4
    5
    
    error: local variables in const fn are unstable
      --> /Users/black.fregat/.cargo/registry/src/github.com-1ecc6299db9ec823/percent-encoding-2.1.0/lib.rs:72:13
       |
    72 |         let chunk = self.mask[byte as usize / BITS_PER_CHUNK];
       |             ^^^^^
    Запись от Black Fregat размещена 23.09.2019 в 15:19 Black Fregat вне форума
  2. Старый комментарий
    Аватар для Curry
    Может rust обновить?
    У меня
    $ rustc --version
    rustc 1.37.0 (eae3437df 2019-08-13)
    крейт percent-encoding-2.1.0 у меня тоже есть в зависимостях (косвенно), но собралось без ошибок.
    Запись от Curry размещена 23.09.2019 в 15:43 Curry вне форума
  3. Старый комментарий
    Аватар для Black Fregat
    После обновления скомпилировалось на трёх системах, на двух даже запустилось )
    На третей
    Code
    1
    2
    
    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: GlutinCreationError(NoAvailablePixelFormat)', src/libcore/result.rs:999:5
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
    Запись от Black Fregat размещена 24.09.2019 в 13:04 Black Fregat вне форума
  4. Старый комментарий
    Аватар для Curry
    Остаётся понять чем отличается третья.
    https://github.com/PistonDevel... ssues/1031
    Третья - VM? Поддерживается ли OpenGL?

    Пишут что можно попробовать закомментировать в main.rs вот это
    C
    1
    
    .with_multisampling(4)
    Запись от Curry размещена 24.09.2019 в 15:29 Curry вне форума
  5. Старый комментарий
    Аватар для Black Fregat
    Цитата Сообщение от Curry
    Остаётся понять чем отличается третья
    Все три разные - Windows, MacOS, Linux (Fedora).
    Да, Fedora на виртуалке.
    Но могу попробовать и на реальном железе, если интересно

    Цитата Сообщение от Curry
    Пишут что можно попробовать закомментировать
    Помогло. Так что это за строчка?
    Запись от Black Fregat размещена 24.09.2019 в 16:11 Black Fregat вне форума
  6. Старый комментарий
    Аватар для Curry
    http://lux.graphics/doc/glium/... ments.html
    multisampling - Contains the minimum number of samples per pixel in the color, depth and stencil buffers. None means "don't care". Default is None. A value of Some(0) indicates that multisampling must not be enabled.
    Скорее всего виртуалка это не поддерживает. Или федора. Может, даже, в ней можно как то openGL апгрейнуть.
    В общем, работать и без неё может, но, в теории, медленее. Для такого приложения всё равно.
    Запись от Curry размещена 24.09.2019 в 16:26 Curry вне форума
  7. Старый комментарий
    Аватар для Curry
    Представленная в стартовом сообщении этой записи блога программа пользуется сервисом мегафона для определения сотового оператора по телефонному номеру. Увы, этот сервис мегафон прикрыл.
    Запись от Curry размещена 06.05.2020 в 22:33 Curry вне форума
  8. Старый комментарий
    Аватар для XLAT
    Curry,
    как обычно, пост изнотюзерфрендли для простого пользователя, такого как я.

    Правильно ли я понял, чтобы запустить вашу программу в виндозе,
    мне надо сутки(а мож месяц) читать кучу паперов со всей сети???

    ну, или это изначально виндозхейтер пост?
    Запись от XLAT размещена 06.05.2020 в 22:46 XLAT вне форума
  9. Старый комментарий
    Аватар для Curry
    Цитата Сообщение от XLAT
    Curry,

    Правильно ли я понял, чтобы запустить вашу программу в виндозе,
    мне надо сутки(а мож месяц) читать кучу паперов со всей сети???

    ну, или это изначально виндозхейтер пост?
    Я под виндой и пробовал, работало, но как давно это было ...
    Запись от Curry размещена 20.07.2022 в 20:16 Curry вне форума
 
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru