172 похожих чатов

Https://Play.Rust-Lang.Org/?Version=Stable&Mode=Debug&Edition=2018&Gist=65fbaac6dfa415bbcf22d065fd949762 Изначально писал, чтобы спросить, как фиксить вторую ошибку (expected struct

TrDefault, found struct TrNotDefault)
теперь ещё хочу спросить, почему компилятор не видит FooBuilder::default()...

10 ответов

12 просмотров
antuan- Автор вопроса

да, хочется, чтобы билдер имел именно такой дефолт.

antuan- Автор вопроса
antuan
да, хочется, чтобы билдер имел именно такой дефолт...

и ещё непонятно, как в таком случае должно выглядеть объявление Foo::builder(). так, очевидно, не прокатит: pub fn builder() -> FooBuilder<T> { FooBuilder::default() } а ожидать в методе builder параметр tr, чтобы затем передать в FooBuilder::new(tr) как-то тупо. builder-паттерн как-то сразу смазывается.

У тебя with_t не меняет тип T, поэтому компилятор из этого вызова вывел что T = TrNotDefault

antuan- Автор вопроса
вафель 🧇🍓
У тебя with_t не меняет тип T, поэтому компилятор ...

Идея в том, что билдер по дефолту предоставляет один T, но ты, если хочешь, можешь задать другой, через with_t. Т.о., если билдер был создан через ::default(), то все последующие вызовы поменяют тип у t, а значит что-то не так.

antuan- Автор вопроса
antuan
Идея в том, что билдер по дефолту предоставляет од...

т.е. кажется, что задать generic-builder-у default с возможностью последующего изменения типа параметра, не представляется возможным. либо так и задумывалось, либо нет...

antuan
Идея в том, что билдер по дефолту предоставляет од...

Просто сделай так, чтобы with_t могла тип менять: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=5b0775527e59b40f72f5f12db4daea5b

antuan- Автор вопроса
вафель 🧇🍓
Просто сделай так, чтобы with_t могла тип менять: ...

добрался до компа это ж не то. тут создается новый инстанс, а мне нужно изменить имеющийся. т.е. да, так работает, но... а если в билдере стопицот параметров, всё надо скопировать в новый инстанс?

antuan
добрался до компа это ж не то. тут создается новый...

А как вы хотите тип менять иначе?) Копирование скорее всего выоптимизируется

antuan- Автор вопроса
вафель 🧇🍓
А как вы хотите тип менять иначе?) Копирование ск...

вообще, конечно, в лучших традициях научной фантастики, хочу, чтоб всё "само" сделалось)

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Всем привет, после Си стоит учить плюсы или лучше на раст перейти?
Linus
8
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
Карта сайта