Size: a a a

Rust — русскоговорящее сообщество

2017 November 26

A

Anton in Rust — русскоговорящее сообщество
Но Arc ссылку на вьюху тебе нужно будет
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
Paul Loyd
Ну и чем это тебе отличается от модуля со статиком?
ват?
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
Вы посоны если чото говорите, поясняйте ну, я не ванга и раст на все сто не знаю
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
и тишина
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
ну блэт
источник

A

Anton in Rust — русскоговорящее сообщество
Пишу
источник

A

Anton in Rust — русскоговорящее сообщество
Свое виденье
источник

A

Anton in Rust — русскоговорящее сообщество
Итак анимация

прилетела вьюха из угла (0, 0) в кординаты (100, 100)
и увеличилась с (0, 0) до (200, 200)

Добавить какой нить StateMachine (sm)

sm.set_frame_rate(60); // Чтобы обеспечить плавную анимацию
sm.add_transition_move(Arc(View), 100, 100, 1000ms); // 1sec
sm.add_transition_resize(Arc(View), 200, 200, 1000ms); // 1sec

Для move
// anim_time = 1000
step = anim_time / frame_rate; // 16.6
// x_aim, y_aim - конечный размер (100, 100)
x_step = x_aim / anim_time * step;
y_step = y_aim / anim_time * step;
loop 1 .. (frame_rate - 1) {
   view.x += x_step;
   view.y ~= y_step;
   sleep(step)
}

view.x = x_aim;
view.y = y_aim;
источник

Oℕ

Oleg ℕizhnik in Rust — русскоговорящее сообщество
я не настоящий пацан, но насколько геморно сделать ну типа по-фпшному, как будто есть
enum WithContext <Ctx, R> { ...}

impl <Ctx, R> Fn(Ctx) -> R for WithContext <A, R>

impl <Ctx, R: Future> for WithContext <A, R>{
 pub fn map(...)
 pub fn and_then(...)
 pub fn filter(...)
 pub fn product(...)
 pub fn pure(...)
}
источник

Oℕ

Oleg ℕizhnik in Rust — русскоговорящее сообщество
и какой-нибудь там do-notation macro прикрутить к этому
источник

A

Anton in Rust — русскоговорящее сообщество
Стейтмашина внутри себя может сожержать tokio или ссылку на канал другого треда, анимация может выполнятся во фьюче или отдельном треде
источник

A

Anton in Rust — русскоговорящее сообщество
стейтмашина только изменяет пропсы, отрисовкой занимается ui тред, и сколько он успеет отрисовать - это его проблема, он может отрисует 10 кадров в секунду, нас это не волнует, мы меняем свойства плавно
источник

A

Anton in Rust — русскоговорящее сообщество
Anton Shramko
и тишина
^
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
имхо мне кажется это более гемморно
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
в твоем варианте Anton у нас получается проблема с тредом
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
тоесть в твоем варианте простой выход - по треду на вьюху
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
ну это большой оверхэд на ожидание
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
а пилить свой костыль для работы с эвентлупом который ожидает на каждую вьюху действие тоже неоч
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
фпс все время будет 60, тут уж свои костыли с заготовкой "а когда же оно ебнет" да и к тому же с своей костыльной реализацией delay и duration
источник

AS

Anton Shramko in Rust — русскоговорящее сообщество
ну это както слишком цветное и страшное
источник