chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用Rust過(guò)程宏實(shí)現(xiàn)derive-with庫(kù)呢?

jf_wN0SrCdH ? 來(lái)源:Rust語(yǔ)言中文社區(qū) ? 2024-01-25 09:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作用

通過(guò)派生宏 #[derive(With)] 給結(jié)構(gòu)體字段生成 with_xxx 方法,通過(guò)鏈?zhǔn)秸{(diào)用 with_xxx 方法來(lái)構(gòu)造結(jié)構(gòu)體。

使用方法

1.給 named struct 每個(gè)字段生成 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 每個(gè)字段生成 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.通過(guò)字段名給 named struct 指定字段實(shí)現(xiàn) with_xxx 方法

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

宏生成代碼

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

4.通過(guò)下標(biāo)給 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
}
}

也支持結(jié)構(gòu)體中含有泛型、生命周期、引用等。



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • rust語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    3218

原文標(biāo)題:【大家的項(xiàng)目】利用 Rust 過(guò)程宏實(shí)現(xiàn)的 derive-with 庫(kù)

文章出處:【微信號(hào):Rust語(yǔ)言中文社區(qū),微信公眾號(hào):Rust語(yǔ)言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何在Rust中連接和使用MySQL數(shù)據(jù)庫(kù)

    MySQL是一個(gè)廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)Rust作為一門(mén)相對(duì)較新的系統(tǒng)級(jí)編程語(yǔ)言,具有C語(yǔ)言般的高性能、安全、并發(fā)等特性,因此與MySQL一起使用是一種非常有趣的選擇。在本教程中,我們將手把手地展示
    的頭像 發(fā)表于 09-30 17:05 ?2725次閱讀

    如何使用Serde進(jìn)行序列化和反序列化

    Serde 是一個(gè)用于序列化和反序列化 Rust 數(shù)據(jù)結(jié)構(gòu)的庫(kù)。它支持 JSON、BSON、YAML 等多種格式,并且可以自定義序列化和反序列化方式。Serde 的特點(diǎn)是代碼簡(jiǎn)潔、易于使用、性能高效
    的頭像 發(fā)表于 09-30 17:09 ?2011次閱讀

    如何使用Rust的標(biāo)準(zhǔn)庫(kù)和structopt庫(kù)來(lái)處理控制臺(tái)參數(shù)

    Rust是一種安全、高效的系統(tǒng)編程語(yǔ)言,其標(biāo)準(zhǔn)庫(kù)以及外部庫(kù)提供了很多處理控制臺(tái)參數(shù)的方式。在本篇文章中,我們將分別介紹如何使用Rust的標(biāo)準(zhǔn)庫(kù)
    的頭像 發(fā)表于 09-20 11:13 ?2015次閱讀

    如何對(duì)gcc編譯過(guò)程中生成的進(jìn)行調(diào)試

    如何對(duì)gcc編譯過(guò)程中生成的進(jìn)行調(diào)試?有哪幾種形式?如何對(duì)一個(gè)函數(shù)進(jìn)行g(shù)prof方式的剖析?
    發(fā)表于 12-24 07:53

    如何利用C語(yǔ)言去調(diào)用rust靜態(tài)庫(kù)

    感覺(jué)比較合適。但如果把主要工作切過(guò)來(lái),感覺(jué)Rust目前又太荒蕪了,而且上面的問(wèn)題也同樣存在。嘗試了解到Rust可以編譯成靜態(tài)庫(kù),于是動(dòng)了只用Rust
    發(fā)表于 06-21 10:27

    Rust代碼中加載靜態(tài)庫(kù)時(shí),出現(xiàn)錯(cuò)誤 ` rust-lld: error: undefined symbol: malloc `怎么解決?

    “ [i]malloc ”、“ [i]exit ”。我驗(yàn)證了使用 ` [i]nm ` 命令。 問(wèn)題是我打算使用 ffi 在 rust 中使用這個(gè)靜態(tài)庫(kù)。當(dāng)我嘗試在我的 Rust 代碼中加載靜態(tài)
    發(fā)表于 06-09 08:44

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

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

    Rust GUI 庫(kù)發(fā)展現(xiàn)狀

    Rust GUI 庫(kù)發(fā)展現(xiàn)狀 最近有一篇關(guān)于 Rust GUI 的博客,這不,kas?這個(gè)? Another GUI toolkit ?框架也針對(duì) Rust 的 GUI 框架現(xiàn)狀進(jìn)行了
    的頭像 發(fā)表于 12-21 15:00 ?3316次閱讀

    Chromium正式開(kāi)始支持Rust

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

    為什么我們從C++語(yǔ)言轉(zhuǎn)向Rust語(yǔ)言?

    gtk4-rs代碼庫(kù)包含GTK4的Rust crates。還有個(gè)龐大的GObject庫(kù)生態(tài)系統(tǒng),其中許多庫(kù)基于gtk-rs中包含的Rust
    的頭像 發(fā)表于 02-17 17:45 ?1600次閱讀

    基于Rust的Log日志庫(kù)介紹

    了一種簡(jiǎn)單的方法來(lái)實(shí)現(xiàn)日志記錄,本文將介紹如何使用Rust的Log庫(kù)作為日志門(mén)面,并結(jié)合env_logger和log4rs兩個(gè)日志庫(kù)的實(shí)戰(zhàn)用例進(jìn)行深入探討。
    的頭像 發(fā)表于 09-19 14:49 ?4450次閱讀

    Rust的標(biāo)準(zhǔn)庫(kù)的功能劃分

    對(duì)于大部分軟件開(kāi)發(fā)工程師而言,他們用Rust主要開(kāi)發(fā)應(yīng)用層軟件,也就是運(yùn)行在用戶空間的程序。它們基于標(biāo)準(zhǔn)庫(kù)編寫(xiě),實(shí)現(xiàn)各種業(yè)務(wù)功能。應(yīng)用層的軟件并非所有模塊和函數(shù)都涉及到系統(tǒng)調(diào)用(例如一些用于操作字符串和處理錯(cuò)誤的函數(shù),就無(wú)需調(diào)用
    的頭像 發(fā)表于 10-29 17:17 ?2215次閱讀
    <b class='flag-5'>Rust</b>的標(biāo)準(zhǔn)<b class='flag-5'>庫(kù)</b>的功能劃分

    FastTime-純Rust編寫(xiě)的高并發(fā)快速時(shí)間庫(kù)

    FastTime, 純Rust編寫(xiě)的快速時(shí)間庫(kù), 并發(fā): 2800萬(wàn)+/秒. 一、組件
    的頭像 發(fā)表于 11-06 09:23 ?1092次閱讀

    基于Rust的嵌入式符合ACID的鍵值數(shù)據(jù)庫(kù)

    surrealkv -- 基于 Rust 的 low level、版本化、嵌入式、符合 ACID 的鍵值數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 12-28 11:29 ?1354次閱讀

    如何用Rust過(guò)程魔法簡(jiǎn)化SQL函數(shù)?

    這是 RisingWave 中一個(gè) SQL 函數(shù)的實(shí)現(xiàn)。只需短短幾行代碼,通過(guò)在 Rust 函數(shù)上加一行過(guò)程,我們就把它包裝成了一個(gè) SQL 函數(shù)。
    的頭像 發(fā)表于 01-23 09:43 ?3212次閱讀
    如何用<b class='flag-5'>Rust</b><b class='flag-5'>過(guò)程</b><b class='flag-5'>宏</b>魔法簡(jiǎn)化SQL函數(shù)<b class='flag-5'>呢</b>?