Pull to refresh
17
0
Send message

Неужели? Этого нет в статье.

Как бы мы могли вернуть целочисленные значения для нашего перечисления?

#[repr(u8)]
pub enum Status {
    Ready = 10,
    Processing = 20,
    Done = 30
}

fn main() {
    println!("{}", Status::Processing as u8);
}

Пример в статье со структурами очень плох: в каждом экземпляре структуры будет содержаться ссылка на функцию, так ещё скорее всего будет добавлен паддинг между полями, что с лёгкостью увеличит размер экземпляра на 4 + 8 = 12 байт.

ООП это не только "функции у класса", но и, например, инкапсуляция, которая возможна и в Си:

#pragma once

// incomplete/opaque type
typedef struct Account Account;

Account* account_new(void);
void account_delete(Account* this);
int account_get_balance(const Account* const this);
#include "account.h"

struct Account {
    int balance;
};

Account* account_new(void) {
    Account* this = malloc(sizeof(Account));
    this->balance = 0;
    return this;
}

void account_delete(Account* this) {
    free(this);
}

int account_get_balance(const Account* const this) {
    return this->balance;
}

Можете надсмехаться надо мной, но во всех приведённых примерах я написал бы raw-запрос (ибо SQL знаю лучше, чем воевать c ORM). Да, пришлось бы аккуратно подставить bind-параметры.

Это если пришельцы обладают технологиями порталов и (или) могут двигаться быстрее скорости света.

У лоу-кодеров дела отлично, как и обещано "Build enterprise apps 20x faster with 100x less code." (oracle apex)

apt: command not found

Ожидал, что в итоге диагностика будет советовать использовать ProcessBuilder вместо Runtime.getRuntime().exec().

Не иммитант ли вы?

Увидел фотографию кролика, вспомнились трейты:

pub fn print_fluff<T>(obj: &T)
where
    T: Placeable + Huggable,
{
    println!("x={} fluffiness={}", obj.get_placeable().x, obj.get_huggable().fluffiness);
}

fn main() {
    let bunny = Rabbit {
        placeable: PlaceableDTO {x:0,y:1,z:2},
        huggable: HuggableDTO {fluffiness:100},
    };
    print_fluff(&bunny);
}

pub struct PlaceableDTO {
    pub x: i32,
    pub y: i32,
    pub z: i32,
}
pub struct HuggableDTO {
    pub fluffiness: i32,
}
pub trait Placeable {
    fn get_placeable(&self) -> &PlaceableDTO;
    fn set_placeable(&mut self, item: PlaceableDTO);
}
pub trait Huggable {
    fn get_huggable(&self) -> &HuggableDTO;
    fn set_huggable(&mut self, item: HuggableDTO);
}
pub struct Rabbit {
    pub placeable: PlaceableDTO,
    pub huggable: HuggableDTO,
}
impl Placeable for Rabbit {
    fn get_placeable(&self) -> &PlaceableDTO { &self.placeable }
    fn set_placeable(&mut self, item: PlaceableDTO) { self.placeable = item; }
}
impl Huggable for Rabbit {
    fn get_huggable(&self) -> &HuggableDTO { &self.huggable }
    fn set_huggable(&mut self, item: HuggableDTO) { self.huggable = item; }
}

Идея не нова, уже существует не один десяток имиджборд, где разрешён только контент от ИИ. Tantabus.ai, например.

"Позабыты хлопоты, остановлен бег, Вкалывают роботы, а не человек."

А если вдруг пропатченные файлы нужно изменить, то создаётся новый патч и добавляется в ту же папку. А остальные разработчики должны увидеть новый патч и накатить локально у себя.

Information

Rating
4,437-th
Registered
Activity

Specialization

Application Developer
Software development
Database
Oracle PL/SQL
Oracle SQL
Linux administration
Python
Rust
Git
Database administration
Oracle administration