色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何利用Rust過程宏實現derive-with庫呢?

jf_wN0SrCdH ? 來源:Rust語言中文社區 ? 2024-01-25 09:51 ? 次閱讀

作用

通過派生宏 #[derive(With)] 給結構體字段生成 with_xxx 方法,通過鏈式調用 with_xxx 方法來構造結構體。

使用方法

1.給 named struct 每個字段生成 with_xxx 方法

#[derive(With)]
pubstructFoo{
puba:i32,
pubb:String,
}

宏生成代碼

implFoo{
pubfnwith_a(mutself,a:implInto)->Self{
self.a=a.into();
self
}
pubfnwith_b(mutself,b:implInto)->Self{
self.b=b.into();
self
}
}

2.給 tuple struct 每個字段生成 with_xxx 方法

#[derive(With)]
pubstructBar(i32,String);

宏生成代碼

implBar{
pubfnwith_0(mutself,field_0:implInto)->Self{
self.0=field_0.into();
self
}
pubfnwith_1(mutself,field_1:implInto)->Self{
self.1=field_1.into();
self
}
}

3.通過字段名給 named struct 指定字段實現 with_xxx 方法

#[derive(With)]
#[with(a)]
pubstructFoo{
puba:i32,
pubb:String,
}

宏生成代碼

implFoo{
pubfnwith_a(mutself,a:implInto)->Self{
self.a=a.into();
self
}
}

4.通過下標給 tuple struct 指定字段生成 with_xxx 方法

#[derive(With)]
#[with(1)]
pubstructBar(i32,String);

宏生成代碼

implBar{
pubfnwith_1(mutself,field_1:implInto)->Self{
self.1=field_1.into();
self
}
}

也支持結構體中含有泛型、生命周期、引用等。



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • rust語言
    +關注

    關注

    0

    文章

    57

    瀏覽量

    3011

原文標題:【大家的項目】利用 Rust 過程宏實現的 derive-with 庫

文章出處:【微信號:Rust語言中文社區,微信公眾號:Rust語言中文社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在Rust中連接和使用MySQL數據

    MySQL是一個廣泛使用的關系型數據Rust作為一門相對較新的系統級編程語言,具有C語言般的高性能、安全、并發等特性,因此與MySQL一起使用是一種非常有趣的選擇。在本教程中,我們將手把手地展示
    的頭像 發表于 09-30 17:05 ?1694次閱讀

    如何使用Serde進行序列化和反序列化

    Serde 是一個用于序列化和反序列化 Rust 數據結構的。它支持 JSON、BSON、YAML 等多種格式,并且可以自定義序列化和反序列化方式。Serde 的特點是代碼簡潔、易于使用、性能高效
    的頭像 發表于 09-30 17:09 ?1301次閱讀

    如何使用Rust的標準和structopt來處理控制臺參數

    Rust是一種安全、高效的系統編程語言,其標準以及外部提供了很多處理控制臺參數的方式。在本篇文章中,我們將分別介紹如何使用Rust的標準
    的頭像 發表于 09-20 11:13 ?1355次閱讀

    如何對gcc編譯過程中生成的進行調試

    如何對gcc編譯過程中生成的進行調試?有哪幾種形式?如何對一個函數進行gprof方式的剖析
    發表于 12-24 07:53

    如何利用C語言去調用rust靜態

    感覺比較合適。但如果把主要工作切過來,感覺Rust目前又太荒蕪了,而且上面的問題也同樣存在。嘗試了解到Rust可以編譯成靜態,于是動了只用Rust
    發表于 06-21 10:27

    Rust代碼中加載靜態時,出現錯誤 ` rust-lld: error: undefined symbol: malloc `怎么解決?

    “ [i]malloc ”、“ [i]exit ”。我驗證了使用 ` [i]nm ` 命令。 問題是我打算使用 ffi 在 rust 中使用這個靜態。當我嘗試在我的 Rust 代碼中加載靜態
    發表于 06-09 08:44

    Rust 1.15 引入自定義derive特性有什么做用

    Rust核心團隊發布了Rust 1.15穩定版,新增了備受期待的自定義derive特性,讓代碼生成工具(如Serde和Diesel)能最大效能地工作。
    發表于 05-17 18:05 ?0次下載
    <b class='flag-5'>Rust</b> 1.15 引入自定義<b class='flag-5'>derive</b>特性有什么做用

    Rust GUI 發展現狀

    Rust GUI 發展現狀 最近有一篇關于 Rust GUI 的博客,這不,kas?這個? Another GUI toolkit ?框架也針對 Rust 的 GUI 框架現狀進行了
    的頭像 發表于 12-21 15:00 ?2646次閱讀

    Chromium正式開始支持Rust

    ? Chromium 正式開始支持 Rust 目前的支持只是第一階段,在C++代碼中使用Rust寫的第三方(編譯成.so)。估計明年Chromium的二進制發行文件中會包含rust
    的頭像 發表于 01-14 10:04 ?987次閱讀

    為什么我們從C++語言轉向Rust語言

    gtk4-rs代碼包含GTK4的Rust crates。還有個龐大的GObject生態系統,其中許多基于gtk-rs中包含的Rust
    的頭像 發表于 02-17 17:45 ?1118次閱讀

    基于Rust的Log日志介紹

    了一種簡單的方法來實現日志記錄,本文將介紹如何使用Rust的Log作為日志門面,并結合env_logger和log4rs兩個日志的實戰用例進行深入探討。
    的頭像 發表于 09-19 14:49 ?3503次閱讀

    Rust的標準的功能劃分

    對于大部分軟件開發工程師而言,他們用Rust主要開發應用層軟件,也就是運行在用戶空間的程序。它們基于標準編寫,實現各種業務功能。應用層的軟件并非所有模塊和函數都涉及到系統調用(例如一些用于操作字符串和處理錯誤的函數,就無需調用
    的頭像 發表于 10-29 17:17 ?1295次閱讀
    <b class='flag-5'>Rust</b>的標準<b class='flag-5'>庫</b>的功能劃分

    FastTime-純Rust編寫的高并發快速時間

    FastTime, 純Rust編寫的快速時間, 并發: 2800萬+/秒. 一、組件
    的頭像 發表于 11-06 09:23 ?652次閱讀

    基于Rust的嵌入式符合ACID的鍵值數據

    surrealkv -- 基于 Rust 的 low level、版本化、嵌入式、符合 ACID 的鍵值數據
    的頭像 發表于 12-28 11:29 ?889次閱讀

    如何用Rust過程魔法簡化SQL函數

    這是 RisingWave 中一個 SQL 函數的實現。只需短短幾行代碼,通過在 Rust 函數上加一行過程,我們就把它包裝成了一個 SQL 函數。
    的頭像 發表于 01-23 09:43 ?975次閱讀
    如何用<b class='flag-5'>Rust</b><b class='flag-5'>過程</b><b class='flag-5'>宏</b>魔法簡化SQL函數<b class='flag-5'>呢</b>?
    主站蜘蛛池模板: 国产午夜AV无码无片久久96| 国产成人精品永久免费视频 | 小SAO货边洗澡边CAO你动漫| 苍井空小公主qvod| 嫩草AV久久伊人妇女| 国产爱豆果冻传媒在线观看| 美女图片131亚洲午夜| 一本色道久久综合亚洲AV蜜桃| 国外经典三级| 亚洲中文无码永久免费| 狠狠鲁 我喜欢| 一区二一二| 擼擼擼麻豆密臀AV| 777黄色片| 欧美乱码伦视频免费66网| 98色精品视频在线| 欧美日韩一区不卡在线观看| 波多结衣一区二区三区| 色色噜一噜| 国产一卡2卡3卡4卡孕妇网站| 亚洲精品一卡二卡三卡四卡2021| 精品欧美一区二区三区久久久| 一级特黄aa大片欧美| 蜜桃成人在线| 草莓视频免费看| 午夜在线观看免费观看 视频| 九九99热久久999精品| 337p啪啪人体大胆| 日本高清免费在线| 国产人妻精品午夜福利免费不卡| 亚洲免费在线视频观看| 六级黄色片| 抽插嫩B乳无码漫| 性色AV一区二区三区咪爱四虎 | 中文无码熟妇人妻AV在线| 柠檬福利精品视频导航| 俄罗斯雏妓的BBB孩交| 亚洲国产精品一区二区久久第| 久久亚洲网站| 东北嫖妓对白粗口| 亚洲中文无码AV在线观看|