Skip to content
Snippets Groups Projects
Commit 30c0d7b4 authored by whuie2's avatar whuie2
Browse files

start Rust translation

parent 416ab022
No related branches found
No related tags found
No related merge requests found
Pipeline #190656 failed
[package]
name = "EntangleWare Control"
version = "0.1.0"
authors = [ "Will Huie <whui2@illinois.edu>",]
edition = "2018"
[dependencies]
ndarray = "0.13.1"
numpy = "0.12.1"
socket = "0.0.7"
[lib]
path = "lib_rs/lib.rs"
name = "lib"
crate-type = [ "cdylib",]
[dependencies.pyo3]
version = "0.12.4"
features = [ "extension-module",]
use socket::{AF_INET, SOCK_DGRAM, IPPOTO_IP, IP_MULTICAST_TTL};
use socket::Socket;
const IPPROTO_UDP: u32 = 17;
struct Udp_Multicaster {
MCAST_GRP: String,
MCAST_PORT: u32,
MCAST_TTL: u8,
sock: Socket
}
impl UdpMulticaster {
fn new(mcast_group: String, mcast_port: u32, mcast_ttl: u8) -> Self {
let sock: Socket = Socket::new(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sock.setsockopt(IPPROTO_IP, IP_MULTICAST_TTL, mcast_ttl);
return UdpMulticaster {
MCAST_GRP: mcast_group,
MCAST_PORT: mcast_port,
MCAST_TTL: mcast_ttl,
sock,
}
}
fn close(&self) {
self.sock.close();
}
fn sendmsg(&self, tcpport: u8) {
}
}
setup.py 0 → 100644
from setuptools import setup
from setuptools_rust import Binding, RustExtension
import toml
cargo_file = "Cargo.toml"
cargo = toml.load(cargo_file)
setup_requires = [
"setuptools",
"setuptools-rust"
]
source_files = [
]
extensions = [
RustExtension(
X.replace("lib_rs/", cargo["lib"]["name"]+".").replace("/", ".").replace(".rs", ""),
path=cargo_file,
binding=Binding.PyO3,
debug=False
) for X in source_files
]
setup(
name=cargo["package"]["name"],
version=cargo["package"]["version"],
packages=[cargo["lib"]["name"]],
rust_extensions=extensions,
setup_requires=setup_requires,
zip_safe=False
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment