Skip to content

Instantly share code, notes, and snippets.

@kavanmevada
kavanmevada / server.kt
Last active March 25, 2023 15:33
Kotlin/Native POSIX Socket Server
package sample
import kotlinx.cinterop.*
import platform.linux.inet_ntoa
import platform.posix.*
/**
*
*/
@kavanmevada
kavanmevada / ListAdapter.kt
Created April 7, 2019 22:34
RecyclerView with ModelView
class ListAdapter(val list: MutableList<User>) : RecyclerView.Adapter<ListAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder =
ViewHolder(inflate(LayoutInflater.from(parent.context), parent, false))
override fun getItemCount() = list.size
override fun onBindViewHolder(holder: ViewHolder, position: Int) = holder.bind(position)
inner class ViewHolder(private val binding: ListItemTwoTxtImgBinding) : RecyclerView.ViewHolder(binding.root) {
mod model;
mod row;
mod list;
use std::path::Path;
use crate::list::DirectoryList;
use crate::model::Model;
@kavanmevada
kavanmevada / Application.kt
Last active March 8, 2022 17:48
kotlin-native-gtk
package sample.GtkHelpers
import kotlinx.cinterop.*
import libgtk3.*
import platform.posix.exit
abstract class Application(application_id: String, gApplicationFlagsNone: GApplicationFlags) {
#!/bin/bash
echo "Hello!"
#![feature(test)]
#![feature(core_intrinsics)]
// extern crate base64; // 0.13.0
extern crate sha2; // 0.9.5
extern crate test;
mod d_const;
mod tmp2;
use std::thread;
fn main() {
let (tx, rx) = mpsc::unbounded::<&str>();
let t1 = thread::spawn(move || {
println!("Received1: {:?}", rx.recv());
println!("Received1: {:?}", rx.recv());
});
use std::ptr::addr_of_mut;
static mut EVENTS: [libc::epoll_event; 10] = [libc::epoll_event { events: 0, u64: 0 }; 10];
pub fn main() {
let tv = std::time::Instant::now();
unsafe {
let efd = libc::eventfd(0, libc::EFD_NONBLOCK);
std::thread::spawn(move || {
@kavanmevada
kavanmevada / futures.rs
Created August 24, 2021 11:58
epoll future
#![feature(async_stream)]
use std::future::Future;
use std::mem::size_of;
use std::net::{Ipv4Addr, SocketAddrV4};
use std::os::unix::io::FromRawFd;
use std::ptr::read;
use std::str::FromStr;
use std::{
cell::RefCell,
extern crate base64; // 0.13.0
extern crate sha2; // 0.9.5
use sha2::{Sha256, Sha512, Digest};
macro_rules! bits {
($orig16BitWord:expr, $from:literal, $to:literal) => {{
let mask = ((1 << ($to - $from + 1)) - 1) << $from;
($orig16BitWord & mask) >> $from
}};