Filipp
В пуш стр не нужен as str
Алексей
но здесь же я указываю что данные из структуры надо брать строкой
Vladimir
1) открываешь доку https://doc.rust-lang.org/std/string/struct.String.html#method.push_str
2) смотришь сигнатуру. Ага требует &str
3) но у тебя тип к примеру String, дальше есть несколько методов как его превратить в &str. Это может быть deref coercion. или явный as_str как у тебя
Алексей
последние несколько дней только с типами и бодаюсь, точнее их несовпадением. Огромное спасибо за пояснения.
а такой метод работы со строками даёт свои преимущества хоть какие нибудь ? (относительно других ЯП)
123
@c_vld так и делаю, отправляя GET после получения 302. Вот только в результате получаю еще один 302, либо 301. на сервере используется laravel
Vladimir
И куда ведёт 302
Vladimir
Где-то конец же есть)
Vladimir
Раз браузер заходит
Vladimir
Просто "реквест" логический должен быть циклом из гетов
Vladimir
Ещё можешь готовую либу взять
Vladimir
Типа reqwest
Vladimir
Vladimir
Но в системном программировании когда нужен предсказуемая работа с аллокатором - дают
Vladimir
Или когда есть кеш неких строк, которые можно часто юзать, то не нужно вообще тратить такты на аллокацию
Алексей
хоть что то )
Алексей
еще раз спасибо за пояснения , извиняюсь за нубские вопросы :) скоро научусь, и вопросы будут более... умными
Anton
Со строками в расте интересно конечно, сходу на этом спотыкаются почти все кому лень было доки почитать)
Алексей
Со строками в расте интересно конечно, сходу на этом спотыкаются почти все кому лень было доки почитать)
классно было бы, если только одними доками всё решалось ))) что примечательно, часом ранее написал вот так:
let mut test_exist: String = String::from("SELECT ..... name = '");
test_exist.push_str(&table_name.as_str());
test_exist.push_str("'");
но и в мыслях не было, что имено так и надо создавать банальную строку при объявлении, либо дописывать метод let tab : String = "yDomains".to_string() , to_string() при объявлении. после delphi или того хуже php , от этого волосы дыбом встают.
Anton
Мозилла харкает в самую душу
Anton
"125 тысяч долларов выделено на реализацию поддержки WebAssembly в упаковщике и загрузчике JavaScript-модулей webpack; "
Anton
посоны
Anton
125 тыщ баксов
Anton
на жс бандлер
Anton
ущипните меня, вдруг мне это снится
Anton
Ну хоть выделили сто тыщ баксов на проект для комуникации в организации майданов
Anton
уже хоть чтото
Anton
Anton
Не жирновато ли?
Anton
Как по мне прям слишком жирновато на 3 человека то
Evgenii
Anton
да и откуда блять 3 месяца работы то? На что?
Anton
смотря где
блять, даже в сша в том же гугле зп сеньора 7к в месяц
Evgenii
Evgenii
Anton
чувак
Anton
ты глянь на строку
Anton
web developer
Anton
100/12 = 8k
Anton
минус 30% налогов
Anton
ну и вот он гонорар
Anton
но блэт, сириусли 12к зеленых в месяц? На рыло?
Evgenii
и это средняя зарплата
Evgenii
плюс накладные расходы
Anton
эхх, ну ок
Anton
хотя, у меня так друг django channels писал, мозилла выделяла 100к зелени, он писал реализацию под amqp за 10к
Anton
остальные бабосики улетели в бездну неизвестности
Anton
http://www.opennet.ru/opennews/art.shtml?num=47323
Anton
Нет ну второй и четвертый проект имхо норм еще, webassembly под вебпаком под вопросом конечно, но положим тоже ок
Anton
но не слишком ли много дали вебпаку относительно остальных проектов?
Evgenii
дают видимо по запросам
Loo
эм...
Anton
дают видимо по запросам
ну, или там гдето есть пунктик - 100к по бумагам, а по факту мы вычитаем процент стоимости работы наших менеджеров
Anton
или типо того
Loo
ну смотря что за случай. но вообще
Loo
принято в статическую диспетчеризацию
Loo
если возможно офк
Loo
https://play.rust-lang.org/?gist=baed7a29895b52666beda3ba653cebe3&version=stable
Loo
пример конечно же утрирован
Loo
ну в общем. если есть информация о нужном типе которые хочешь создать фабрикой - то статическую диспетчерезацию юзаешь. если у тебя динамика на динамике и динамикой погоняет и вообще никак не известно то хуячь трэит обжект
Loo
и хуй с ним
Loo
ещё конечно можно через енами изворачиваться
Loo
но это конечно же ещё большая хуйня наверно
Loo
так что как то так
Loo
ну делаешь для них один трэйт и реализуешь его для реальной и тестовой структуры
Loo
ну это не очень как бы
Loo
давай ближе к реальному кейсу твоему
Loo
что ты хочешь замокать
Loo
какую базу или что там
Loo
как тестировать хочешь
Loo
impl TaskServer for MockTaskServer {
fn tasks(&self) -> HashMap<Uuid, TaskStatus> {
self.data.lock().unwrap().clone()
}
fn create_task(&self, _: &AppVersion, _: &Workunit) -> errors::Result<Uuid> {
Ok(
util::insert_unique(
&mut (*self.data.lock().unwrap()),
TaskStatus {
status: RunStatus::Stopped,
pct_complete: 0.0,
},
).0,
)
}
fn start_task(&self, id: &Uuid) -> bool {
self.set_status(id, RunStatus::Running)
}
fn stop_task(&self, id: &Uuid) -> bool {
self.set_status(id, RunStatus::Stopped)
}
fn abort_task(&self, id: &Uuid) -> bool {
self.set_status(id, RunStatus::Aborted)
}
}
Loo
ты же всё правильно сделал
Loo
а зачем тебе фабрика?
Loo
просто пиши в тесте let mocke_task_server = MockTaskServer { ... }; и тестируй
Loo
а..ну типо чтобы не инициализировать вручную каждый раз эту хрень ты решил фабрику захуячить
Loo
ну реализуй Default ручками для них и всё или билдер сделай, ну или фабрику которая будет сокрывать это говно как я показывал выше. в общем то особо смысл не меняется
Loo
так оно в любом случае никак не будется касаться
Loo
#[derive(Debug, Default)]
pub struct RealTaskServer {
data: Mutex<HashMap<Uuid, TaskInfo>>,
}
/// Mock implementation of TaskServer. Useful for testing and development.
#[derive(Debug, Default)]
pub struct MockTaskServer {
data: Mutex<HashMap<Uuid, TaskStatus>>,
}
Loo
у тебя же поля приватные