Результаты поиска по запросу "traits"

1 ответ

 потребуется в следующей редакции Rust. Это именно то, что Шепмастер будет редактировать, так что я могу с этим покончить.

аюсь получить генератор случайных чисел. посколькуOsRng::new() может потерпеть неудачу, я хотел бы вернуться кthread_rng() если я должен: extern crate rand; // 0.5.5 use rand::{thread_rng, OsRng, RngCore}; fn rng() -> impl RngCore { match ...

1 ответ

, более принципиальный решатель для типов проблем, которые создает сложная система типов.

фрагмент действителен в Rust 1.26.1: use std::ops::AddAssign; trait Trait where for<'a> Self: AddAssign<Self> + AddAssign<&'a Self> + Sized, { } trait Trait2 { type Associated: Trait; fn method(u32) -> Self::Associated; } fn func<T2: Trait2>() { ...

2 ответа

@ Берджи я подумал, что может быть что-то еще. Но это может быть тот случай, когда лучше кусать пулю и писать границы.

аюсь реализовать общую структуру с кучей полей, где каждый из типов полей должен знать о точном типе всей структуры. Это своего рода шаблон стратегии. pub struct Example<S: Strategy<Example<S, D>>, D> { pub s: S, pub a: S::Associated, pub data: ...

ТОП публикаций

0 ответов

пример

я есть этот код: extern crate serde; use serde::de::DeserializeOwned; use serde::Serialize; trait Bar<'a, T: 'a> where T: Serialize, &'a T: DeserializeOwned, { }Я хотел бы написать это, используя связанный тип, потому что типT неважно для ...

1 ответ

Если это действительно то же самое, вы можете предоставить реализацию по умолчанию в черте.

я есть: use std::ops::{Add, Div, Mul, Neg, Sub}; pub trait Hilbert: Add + Sub + Mul + Div + Neg + Mul<f64, Output = Self> + Div<f64, Output = Self> + Sized + Copy { fn dot(&self, other: &Self) -> f64; fn magnitude(&self) -> f64; } fn ...

2 ответа

По причине производительности имеет смысл, и это также то, что я подозреваю больше всего :)

рта характераReadмногие функции / методы занимают [https://doc.rust-lang.org/std/io/trait.Read.html]в качестве (одного из) параметров и возвратаbuf: &mut XXX, Например,Result<usize> ...

0 ответов

s комбинаторы для сокращения всей функции:

я есть следующие две функции: pub fn get_most_recent_eth_entry(conn: &SqliteConnection) -> Result<i32, Error> { let res = types::ethereum::table .order(types::ethereum::time.desc()) .limit(1) .load::<types::ETHRecord>(&*conn); match res { Ok(x) ...

1 ответ

...

ументыдля [https://doc.rust-lang.org/std/marker/trait.Send.html]черта, я вижу обаSendа также impl<T> Send for LinkedList<T> where T: Send,В чем разница между этими двумя синтаксисами и как это повлияет на мой код, если я буду писать impl<T: ...

1 ответ

Ваш код действительно правильный, я использовал & String внутри vec .... Спасибо за ваше время.

у использовать подготовленное заявление сrusqlite [https://github.com/jgallagher/rusqlite], Rusqlite реализует чертуToSql заString, &str а такжекуча других типов [https://github.com/jgallagher/rusqlite/blob/master/src/types/to_sql.rs]: extern ...

2 ответа

 когда есть динамическая отправка / неоднородность.

аписании кода с чертами вы можете поместить черту в границу черты: use std::fmt::Debug; fn myfunction1<T: Debug>(v: Box<T>) { println!("{:?}", v); } fn myfunction2<T: Debug>(v: &T) { println!("{:?}", v); } fn main() { myfunction1(Box::new(5)); ...