Alexander
Я об этом тоже думал, но удобно генерить вектора в имплементации new. Но где их тогда хранить. Так как это первая точка где появляются эти вектора по сути.
Денис
блин
Денис
Item = CheeseRef<'a>
Денис
это ваще проблема
Денис
потому что если Cheese имплементит этот TestTrait, то CheeseRef нифига не имплементит
Αλεχ
и принимай &self
Alexander
Я может не очень понял, и может не очень удобно. Но я в итоге решил просто имплементить Test for SRef. А не для S. И мне кажется с этим жить можно. Так что наверное лучше забить на этот Test для S, может и можно реализовать, но не легко.
Денис
@inv2004 https://gist.github.com/mexus/e9b70ac9c7b51878c7d00ec37a448a79
Нави
вместо function overloading колдую так https://play.rust-lang.org/?gist=141ee235d624f5b9fb10672fe3e1a6e9&version=stable
Нави
но пока неполучается
Денис
(ты выложил то же самое)
Денис
(забыл нажать на share походу)
Нави
https://play.rust-lang.org/?gist=2df011580f8b1e2cc4536df7c533f31a&version=stable
Alexander
@inv2004 https://gist.github.com/mexus/e9b70ac9c7b51878c7d00ec37a448a79
А зачем плеер в отдельном трейте?
Денис
А зачем плеер в отдельном трейте?
потому что это по факту трейт
Денис
и чтобы не писать какие-то жёсткие обёртки
Денис
как у тебя было сделано
Денис
и не надо никаких ни new ничего
Alexander
Мне кажется тут проблема. Без ::new, мне логику создания векторов надо выносить наверх, а она для каждой S* своя, из-за этого удобно из генерить в имплементации new для S1..n
Денис
@NaviArh https://play.rust-lang.org/?gist=d46508396eeaca5272ec79061fce4dc2&version=stable
Alexander
Получается бинарник должен для каждой S по разному делать вектора и генерить SVec, а в моём случае такого делать вроде как не надо.
Денис
я ничего не понял
Денис
сорян)
Alexander
Например для S1 b должен быть 2*a. А для S3 b:a+a, c:a+b. Ну просто как пример. Где мне это правильно описать? По идее в new
Нави
@NaviArh https://play.rust-lang.org/?gist=d46508396eeaca5272ec79061fce4dc2&version=stable
tipe:: снова с правильным написанием трудности, уже почти отказался от перечислений. А так помог, благодарствия)
Денис
👍
Денис
@inv2004 я по-прежнему нихера не понимаю))
Alexander
Сорян. Щас напишу.
Alexander
Есть структура S1{a,b}. Есть S2{a,b,c}
Денис
так, пока понятно)
Денис
ааа
Денис
типа fn test(&self) -> f32 по-разному для разных структур задаётся?..
Денис
если да, то это и в моей версии поддерживается :)
Alexander
Именно! И главное что new тоже.
Денис
а зачем new-то?
Денис
там данные фиксированные что ли?
Денис
берутся из воздуха?)
Alexander
Потому что у меня не push в цикле делается. А есть некие зависимости. Например b это может быть производная от a
LexsZero
вангую прогон биржевых роботов по историческим данным
Денис
😆
LexsZero
ноуп
Alexander
ноуп
Тогда давай мои допилим, уже много собрал и даже посчитал. Щас немного рефакторинг просто, чтоб новые модели было удобнее имплементить :)
Alexander
Вообще могу репортовать что Раст хорошо отработал пока - на домашнем компе чуть больше часа. А знакомый аналогичное на питоне начал пилить, так через сутки просто остановил даже одной модели не проиграв.
Денис
Потому что у меня не push в цикле делается. А есть некие зависимости. Например b это может быть производная от a
я бы сказал, что проигрывание и генерация — принципиально разные процедуры, и пихать их в один трейт имхо не оч
Alexander
я бы сказал, что проигрывание и генерация — принципиально разные процедуры, и пихать их в один трейт имхо не оч
Да, я согласен, и как я писал так и было. По но факту это все же связанные вещи - генерация индикаторов и проигрывание.
Денис
просто я не вижу вообще никакого смысла выносить эту процедуру в трейт
Денис
можно же просто функцию сделать generate_cheese() -> CheeseVec и усё
Alexander
Но тогда в бинарнике ты должен дёргать именно её. А у меня я сейчас делаю S1::new(&some_data) и все. Хотя я согласен, тут по сути не большая разница. Просто показалось удобно когда все просто в одном месте внутри имплементации S1.
Денис
хм
Alexander
Получается я пишу S2,внутри new и test, потом просто заменяю S1 на S2 и всё работает. В самом бинарнике и имплементации S* никакого бойлерплейта.
Денис
https://gist.github.com/mexus/e9b70ac9c7b51878c7d00ec37a448a79
Денис
в test_boobar я написал Cheese ровно один раз
Alexander
В общем мне кажется это почти одно и тоже, я конечно не уверен точно. Просто из-за этой проблемы пришлось .iter наружу вытащить, а если бы этого не было, наверняка же бы ты передавал в play просто &slice?
Денис
чем &slice отличается от slice.iter()?
Денис
ну кроме того, что slice.iter() длиннее чуть-чуть)
Alexander
Наверное я тут не прав в том плане, что не написал, что в оригинальном коде у меня есть ещё структура Params, которая тоже сохраняется в Player и передаётся в .test
Денис
начинается)
Денис
AB проблема)
Alexander
:)
Денис
короче смотри сам
Alexander
Но я дико брагодарен за помощь, я б ещё неделю разбирался бы что тут имплементируется, а что нет.
Денис
не за что)
Alexander
struct IsIntoIterator<T>(T) where T: Trait пишешь и видишь сразу
Тоже вариант, запомню, спасибо. Просто тут немного надо перебирать тогда каким ещё Item может быть например.
Bugworm
Чо пацаны вр
Bugworm
Mozilla Servo Team To Begin Focusing On VR / Mixed Reality http://www.phoronix.com/scan.php?page=news_item&px=Mozilla-Servo-Mixed-Reality
ne_on
@nirfse о привет
Nardis
@nirfse о привет
гы, здаров)
Alexander
доигрался: error: internal compiler error: librustc\traits\project.rs:1434: Failed to unify obligation
Loo
Loo
https://intellij-rust.github.io/2018/03/08/changelog-69.html
Dårk
Kerrigan
Alex
"одыквата" похоже на биологическое номенклатурное именование
Alex
Brachyura Odykvata
Saphire
Это канал про Раст? Какое посмотреть аниме? \ s