erg/compiler/erg_compiler/context/initialize/py_mods/socket.rs
Shunsuke Shibayama d5f2b5f450 Add register_gen_*
`register_*` renamed `register_const_*`
2022-09-05 14:24:30 +09:00

36 lines
997 B
Rust

use erg_common::vis::Visibility;
use erg_common::Str;
use erg_type::constructors::{func, mono, option, param_t};
use erg_type::Type;
use Type::*;
use crate::context::Context;
use crate::varinfo::Mutability;
use Mutability::*;
use Visibility::*;
impl Context {
pub(crate) fn init_py_socket_mod() -> Self {
let mut socket = Context::module("socket".into(), 15);
let mut sock = Context::mono_class(Str::ever("Socket!"), vec![Obj], vec![], 0);
sock.register_builtin_impl(
"new",
func(
vec![],
None,
vec![
param_t("family", Int),
param_t("type", Int),
param_t("proto", Int),
param_t("fileno", option(Int)),
],
mono("Socket!"),
),
Immutable,
Public,
);
socket.register_builtin_type(mono("Socket!"), sock, Const);
socket
}
}