The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск Rust 1.72. Решение поставлять макрос  serde_derive только в скомпилированном виде"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для слежения за появлением новых сообщений в нити, нажмите "Проследить за развитием треда".
. "Выпуск Rust 1.72. Поставка пакета serde_derive только в ском..." +/
Сообщение от freecoder (ok), 25-Авг-23, 14:01 
> https://hirrolot.github.io/posts/rust-is-hard-or-the-misery-...

Автор какой-то странный. Растовый аналог его гошного кода


package main

import "fmt"

type Update struct{}
type Handler func(*Update)

type Dispatcher struct {
    handlers []Handler
}

func (dp *Dispatcher) pushHandler(handler Handler) {
    dp.handlers = append(dp.handlers, handler)
}

func main() {
    dp := Dispatcher{handlers: nil}
    dp.pushHandler(func(upd *Update) {
        fmt.Println(upd)
    })
}


Будет такой код:

#[derive(Debug)]
struct Update;

type Handler = fn(&Update);

struct Dispatcher(Vec<Handler>);

impl Dispatcher {
    fn push_handler(&mut self, handler: Handler) {
        self.0.push(handler);
    }
}

fn main() {
    let mut dp = Dispatcher(vec![]);

    dp.push_handler(|upd| {
        println!("{:?}", upd);
    });
}


Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск Rust 1.72. Решение поставлять макрос  serde_derive только в скомпилированном виде, opennews, 24-Авг-23, 21:52  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру