impl<'a> List<'a> {
fn add(&mut self, val: String, referenced_node: &'a Node) {
self.node = Some(Node {
data: String::from(String::from(val)),
next: Some(referenced_node),
});
}
}
правда скорее всего будут траблы уже в месте вызова этого метода, но что бы поправить недостаточно контекстаpub struct HashMap<K, V> {
table: Table<(K, V)>,
}
struct Table<T> {
// битовая маска занятых ячеек в items
mask: u64,
items: Box<[std::mem::MaybeUninit<Item<T>>; 64]>,
len: usize,
}
struct Item<T> {
data: T,
next: Option<std::ptr::NonNull<Item<T>>>,
}
pub enum Entry<'a, K, V> {
Vacant(VacantEntry<'a, K, V>),
Occupied(OccupiedEntry<'a, K, V>),
}
pub struct VacantEntry<'a, K, V> {
hash: u64,
key: K,
table: &'a mut Table<(K, V)>,
}
pub struct OccupiedEntry<'a, K, V> {
elem: Bucket<(K, V)>,
table: &'a mut Table<(K, V)>,
}
// указатель на Item.data
struct Bucket<T> {
ptr: std::ptr::NonNull<T>,
}
impl<K, V> HashMap<K, V> {
pub fn entry<'a>(&'a mut self, key: K) -> Entry<'a, K, V>
where
K: Eq + std::hash::Hash,
{
use std::hash::Hasher as _;
let mut hasher = self.get_hasher();
key.hash(&mut hasher);
let hash = hasher.finish();
if let Some(elem) = self.table.find(hash, |(k, _)| key == *k) {
Entry::Occupied(OccupiedEntry {
elem,
table: &mut self.table,
})
} else {
Entry::Vacant(VacantEntry {
hash,
key,
table: &mut self.table,
})
}
}
fn get_hasher(&self) -> impl std::hash::Hasher {
todo!()
}
}
impl<T> Table<T> {
fn find(&self, hash: u64, is_match: impl FnMut(&T) -> bool) -> Option<Bucket<T>> {
todo!()
}
}
let logMessage = type
.replace('[playerKick]', name1)
.replace('[playerDefence]', name2);
export const generateLogs = (type, player1, player2, damage = 0) => {
const { name: name1 } = player1;
const { name: name2 } = player2;
const logMessage = type
.replace('[playerKick]', name1)
.replace('[playerDefence]', name2);
switch (type) {
case 'start':
return logMessage + LOGS.start
.replace('[time]', getTime())
.replace('[player1]', name1)
.replace('[player2]', name2);
case 'hit':
return logMessage + `${LOGS.hit[getRandom(0, LOGS.hit.length - 1)]
.replace('[playerKick]', name1)
.replace('[playerDefence]', name2)} -${damage}
[${player2.hp} / 100]
`;
case 'defence':
return logMessage + LOGS.defence[getRandom(0, LOGS.defence.length - 1)]
.replace('[playerKick]', name2)
.replace('[playerDefence]', name1);
case 'end':
return logMessage + LOGS.end[getRandom(0, LOGS.end.length - 1)]
.replace('[playerWins]', name1)
.replace('[playerLose]', name2);
case 'draw':
return logMessage + LOGS.draw;
default:
return logMessage + '...';
}
};
export const insertLogs = (logMessage) => {
const el = `<p>${logMessage}</p>`;
chat.insertAdjacentHTML('afterbegin', el);
};
получается на выходе файл .imgСо слепком root-fs получившейся ОС? Тогда достаточно флешки форматированной в fat32, заливаете этот образ туда и делаете туда же grub-install с монтированием этого образа.
const transformObject = <const K0 extends string, const K1 extends string>(obj: Record<K0, Record<K1, string>>) => {
let result: Partial<Record<K1, Partial<Record<K0, string>>>> = {};
for (const key of Object.keys(obj) as K0[]) {
for (const lang of Object.keys(obj[key]) as K1[]) {
(result[lang] ??= {} as Partial<Record<K0, string>>)[key] = obj[key][lang];
}
}
return result;
};
От какого времени принято отталкиваться в программированииДелают и так и так, но лучше от UTC ибо стандарт и формально более точный, например учитывает високосные секунды именно в те дни, когда они были добавлены.