原创 rust條件編譯

直接看這個吧,用的挺多的條件編譯,看起來也挺直觀的 http://angrylawyer.github.io/rust-sdl2/src/rand/os.rs.html 貼過來大家參考下: pub use self::imp::

原创 rust raw pointer使用方法(4)

4、這兒是繼續上一篇往下寫,上一篇是把*mut c_void指針轉成*mut T類型,然後用UFCS來調用,今天是把*mut c_void轉成*mut Self來使用,這個其實只需要添加:Sized就可以了,具體代碼如下: use

原创 rust用BTreeMap保存closure

use std::collections::BTreeMap; struct Foo{ entry:BTreeMap<i32,Box<Fn(i32)->i32>>, } impl Foo{ fn new()->

原创 顯示rust測試時候的print信息

cargo test命令默認是關閉了test裏的print輸出,這對有時候需要看輸出信息很不方便,官方添加了兩種方法: https://github.com/rust-lang/rust/commit/6eaa21635e6c6

原创 rust raw pointer使用方法(3)

3、這一篇寫個稍微複雜一點的 這個例子裏的函數接收*mut c_void指針,然後把指針轉成T類型的p_self raw指針,再使用rust的UFCS的函數調用方法調用T的方法(T的靜態函數就不需要這麼複雜了,直接T::xxxx就

原创 用泛型實現rust返回類型自動推導

rust用泛型可以根據後續的類型提示自動選擇返回值類型 #[derive(Debug)] struct Foo(i32); #[derive(Debug)] struct FooBar(i32,i32); trait New{

原创 rust泛型過度使用思考

寫這篇文章的時候我只是用打印函數地址的方式來測試的,這個測試方法可能並不是很妥當,可能會引起編譯器在某些情況下放棄優化(個人猜測),目前想到的方法:應該在release模式下大量impl一個實現了靜態方法的trait看文件膨脹的速

原创 給rust鏈接windows下的資源或者c/c++的.o文件

本文是用編譯腳本(build.rs)的方式鏈接windows下的資源 1、原理 編譯腳本的用法可以看下面這個官方的鏈接 http://doc.crates.io/build-script.html 下面這個是官方的例子,是用gc

原创 rust用struct保存特定trait的引用

結構體保存一個實現了某個trait的引用,只要是保存引用就必須顯式的加lifetime,實現如下: 注意是實現了某個trait的類型的引用,而不是trait object (只是保存而已,記不住…) trait DeriveT

原创 設置linux驅動編譯的中間目錄

1 無中間輸出目錄 編譯驅動時我們常用下面的Makefile: obj-m := ./src/imx6ul_ads1278.o #內核源碼目錄 KDIR := /home/ding/fsl/imx6ul/system/linux

原创 rust一些習慣表達方法

學習rust的朋友可能經常看到Result和Option,雖然不一定直接看到他們本身,但是他們的方法還是常見的,比如:xxx.ok().expect(“…”); 這個xxx一般就是某個函數返回的Result類型了,下面就詳細的講

原创 matlab和matplot繪圖對比

matplot的圖和matlab的短時傅里葉的圖,數據和算法的參數都一樣,是算法給的結果有差異還是繪圖有差異?matlab看的細節明顯多了,是用法不對還是matlab畫圖真的好這麼多? matlab: spectrogram(d3

原创 win10下如何快速安裝迷你迅雷

因迷你迅雷簽名早已經過期,現在win10下已經不可以正常的安裝迷你迅雷了 最快速的方法就是啓用administrator用戶,用這個安裝就可以了,不需要任何設置 如上圖啓用administrator就可以,然後註銷用administr

原创 web應用裏的flash message的作用

flash 提示信息一般顯示一段很簡單的信息告知登錄之類的信息,具體如下圖: 正常情況下的登陸頁面應該是下面這個樣子的,就是沒有任何信息提示: 登陸成功後的主頁顯示“登陸成功”的提示 flash信息顯示的時候也許會比較特別,不

原创 在宏裏訪問結構體的成員 - rust

目前在rust的宏裏直接訪問結構體的成員是不可行的,但是可以通過變通的方法來做 例如下面的代碼就是不可行的,$m.id或者$m.code會提示出錯 macro_rules! msg { ($id:expr,$code:expr,$