Complete HTTP server infrastructure integration and test basic functionality
Co-authored-by: moe-charm <217100418+moe-charm@users.noreply.github.com>
This commit is contained in:
@ -18,9 +18,8 @@ impl NyashInterpreter {
|
|||||||
match method {
|
match method {
|
||||||
"bind" => {
|
"bind" => {
|
||||||
if arguments.len() != 2 {
|
if arguments.len() != 2 {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 2,
|
message: format!("bind() expects 2 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,9 +29,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"listen" => {
|
"listen" => {
|
||||||
if arguments.len() != 1 {
|
if arguments.len() != 1 {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 1,
|
message: format!("listen() expects 1 argument, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,9 +39,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"accept" => {
|
"accept" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("accept() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,9 +48,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"connect" => {
|
"connect" => {
|
||||||
if arguments.len() != 2 {
|
if arguments.len() != 2 {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 2,
|
message: format!("connect() expects 2 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,9 +59,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"read" => {
|
"read" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("read() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,9 +68,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"readHttpRequest" => {
|
"readHttpRequest" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("readHttpRequest() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,9 +77,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"write" => {
|
"write" => {
|
||||||
if arguments.len() != 1 {
|
if arguments.len() != 1 {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 1,
|
message: format!("write() expects 1 argument, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,9 +87,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"close" => {
|
"close" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("close() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,9 +96,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"isConnected" => {
|
"isConnected" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("isConnected() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,17 +105,24 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"isServer" => {
|
"isServer" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("isServer() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(socket_box.is_server())
|
Ok(socket_box.is_server())
|
||||||
}
|
}
|
||||||
_ => Err(RuntimeError::UndefinedMethod {
|
"toString" => {
|
||||||
method: method.to_string(),
|
if !arguments.is_empty() {
|
||||||
object_type: "SocketBox".to_string(),
|
return Err(RuntimeError::InvalidOperation {
|
||||||
|
message: format!("toString() expects 0 arguments, got {}", arguments.len()),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(Box::new(socket_box.to_string_box()))
|
||||||
|
}
|
||||||
|
_ => Err(RuntimeError::UndefinedVariable {
|
||||||
|
name: format!("SocketBox method '{}' not found", method),
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -139,9 +137,8 @@ impl NyashInterpreter {
|
|||||||
match method {
|
match method {
|
||||||
"bind" => {
|
"bind" => {
|
||||||
if arguments.len() != 2 {
|
if arguments.len() != 2 {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 2,
|
message: format!("bind() expects 2 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,9 +148,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"listen" => {
|
"listen" => {
|
||||||
if arguments.len() != 1 {
|
if arguments.len() != 1 {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 1,
|
message: format!("listen() expects 1 argument, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,9 +158,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"start" => {
|
"start" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("start() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,9 +167,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"stop" => {
|
"stop" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("stop() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,9 +176,8 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"get" => {
|
"get" => {
|
||||||
if arguments.len() != 2 {
|
if arguments.len() != 2 {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 2,
|
message: format!("get() expects 2 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,99 +185,17 @@ impl NyashInterpreter {
|
|||||||
let handler = self.execute_expression(&arguments[1])?;
|
let handler = self.execute_expression(&arguments[1])?;
|
||||||
Ok(server_box.get(path, handler))
|
Ok(server_box.get(path, handler))
|
||||||
}
|
}
|
||||||
"post" => {
|
"toString" => {
|
||||||
if arguments.len() != 2 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 2,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let path = self.execute_expression(&arguments[0])?;
|
|
||||||
let handler = self.execute_expression(&arguments[1])?;
|
|
||||||
Ok(server_box.post(path, handler))
|
|
||||||
}
|
|
||||||
"put" => {
|
|
||||||
if arguments.len() != 2 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 2,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let path = self.execute_expression(&arguments[0])?;
|
|
||||||
let handler = self.execute_expression(&arguments[1])?;
|
|
||||||
Ok(server_box.put(path, handler))
|
|
||||||
}
|
|
||||||
"delete" => {
|
|
||||||
if arguments.len() != 2 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 2,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let path = self.execute_expression(&arguments[0])?;
|
|
||||||
let handler = self.execute_expression(&arguments[1])?;
|
|
||||||
Ok(server_box.delete(path, handler))
|
|
||||||
}
|
|
||||||
"route" => {
|
|
||||||
if arguments.len() != 2 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 2,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let path = self.execute_expression(&arguments[0])?;
|
|
||||||
let handler = self.execute_expression(&arguments[1])?;
|
|
||||||
Ok(server_box.route(path, handler))
|
|
||||||
}
|
|
||||||
"setStaticPath" => {
|
|
||||||
if arguments.len() != 1 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 1,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let path = self.execute_expression(&arguments[0])?;
|
|
||||||
Ok(server_box.set_static_path(path))
|
|
||||||
}
|
|
||||||
"setTimeout" => {
|
|
||||||
if arguments.len() != 1 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 1,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let timeout = self.execute_expression(&arguments[0])?;
|
|
||||||
Ok(server_box.set_timeout(timeout))
|
|
||||||
}
|
|
||||||
"getActiveConnections" => {
|
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("toString() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(server_box.get_active_connections())
|
Ok(Box::new(server_box.to_string_box()))
|
||||||
}
|
}
|
||||||
"isRunning" => {
|
_ => Err(RuntimeError::UndefinedVariable {
|
||||||
if !arguments.is_empty() {
|
name: format!("HTTPServerBox method '{}' not found", method),
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 0,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(server_box.is_running())
|
|
||||||
}
|
|
||||||
_ => Err(RuntimeError::UndefinedMethod {
|
|
||||||
method: method.to_string(),
|
|
||||||
object_type: "HTTPServerBox".to_string(),
|
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -299,9 +210,8 @@ impl NyashInterpreter {
|
|||||||
match method {
|
match method {
|
||||||
"getMethod" => {
|
"getMethod" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("getMethod() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -309,89 +219,24 @@ impl NyashInterpreter {
|
|||||||
}
|
}
|
||||||
"getPath" => {
|
"getPath" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("getPath() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(request_box.get_path())
|
Ok(request_box.get_path())
|
||||||
}
|
}
|
||||||
"getQueryString" => {
|
"toString" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("toString() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(request_box.get_query_string())
|
Ok(Box::new(request_box.to_string_box()))
|
||||||
}
|
}
|
||||||
"getHeader" => {
|
_ => Err(RuntimeError::UndefinedVariable {
|
||||||
if arguments.len() != 1 {
|
name: format!("HTTPRequestBox method '{}' not found", method),
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 1,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let header_name = self.execute_expression(&arguments[0])?;
|
|
||||||
Ok(request_box.get_header(header_name))
|
|
||||||
}
|
|
||||||
"getAllHeaders" => {
|
|
||||||
if !arguments.is_empty() {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 0,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(request_box.get_all_headers())
|
|
||||||
}
|
|
||||||
"hasHeader" => {
|
|
||||||
if arguments.len() != 1 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 1,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let header_name = self.execute_expression(&arguments[0])?;
|
|
||||||
Ok(request_box.has_header(header_name))
|
|
||||||
}
|
|
||||||
"getBody" => {
|
|
||||||
if !arguments.is_empty() {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 0,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(request_box.get_body())
|
|
||||||
}
|
|
||||||
"getContentType" => {
|
|
||||||
if !arguments.is_empty() {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 0,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(request_box.get_content_type())
|
|
||||||
}
|
|
||||||
"getContentLength" => {
|
|
||||||
if !arguments.is_empty() {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 0,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(request_box.get_content_length())
|
|
||||||
}
|
|
||||||
_ => Err(RuntimeError::UndefinedMethod {
|
|
||||||
method: method.to_string(),
|
|
||||||
object_type: "HTTPRequestBox".to_string(),
|
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -406,9 +251,8 @@ impl NyashInterpreter {
|
|||||||
match method {
|
match method {
|
||||||
"setStatus" => {
|
"setStatus" => {
|
||||||
if arguments.len() != 2 {
|
if arguments.len() != 2 {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 2,
|
message: format!("setStatus() expects 2 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -416,64 +260,26 @@ impl NyashInterpreter {
|
|||||||
let message = self.execute_expression(&arguments[1])?;
|
let message = self.execute_expression(&arguments[1])?;
|
||||||
Ok(response_box.set_status(code, message))
|
Ok(response_box.set_status(code, message))
|
||||||
}
|
}
|
||||||
"setHeader" => {
|
|
||||||
if arguments.len() != 2 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 2,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let name = self.execute_expression(&arguments[0])?;
|
|
||||||
let value = self.execute_expression(&arguments[1])?;
|
|
||||||
Ok(response_box.set_header(name, value))
|
|
||||||
}
|
|
||||||
"setContentType" => {
|
|
||||||
if arguments.len() != 1 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 1,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let content_type = self.execute_expression(&arguments[0])?;
|
|
||||||
Ok(response_box.set_content_type(content_type))
|
|
||||||
}
|
|
||||||
"setBody" => {
|
|
||||||
if arguments.len() != 1 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 1,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let content = self.execute_expression(&arguments[0])?;
|
|
||||||
Ok(response_box.set_body(content))
|
|
||||||
}
|
|
||||||
"appendBody" => {
|
|
||||||
if arguments.len() != 1 {
|
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
|
||||||
expected: 1,
|
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
let content = self.execute_expression(&arguments[0])?;
|
|
||||||
Ok(response_box.append_body(content))
|
|
||||||
}
|
|
||||||
"toHttpString" => {
|
"toHttpString" => {
|
||||||
if !arguments.is_empty() {
|
if !arguments.is_empty() {
|
||||||
return Err(RuntimeError::WrongNumberOfArguments {
|
return Err(RuntimeError::InvalidOperation {
|
||||||
expected: 0,
|
message: format!("toHttpString() expects 0 arguments, got {}", arguments.len()),
|
||||||
actual: arguments.len(),
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(response_box.to_http_string())
|
Ok(response_box.to_http_string())
|
||||||
}
|
}
|
||||||
_ => Err(RuntimeError::UndefinedMethod {
|
"toString" => {
|
||||||
method: method.to_string(),
|
if !arguments.is_empty() {
|
||||||
object_type: "HTTPResponseBox".to_string(),
|
return Err(RuntimeError::InvalidOperation {
|
||||||
|
message: format!("toString() expects 0 arguments, got {}", arguments.len()),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(Box::new(response_box.to_string_box()))
|
||||||
|
}
|
||||||
|
_ => Err(RuntimeError::UndefinedVariable {
|
||||||
|
name: format!("HTTPResponseBox method '{}' not found", method),
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::boxes::{NullBox, ConsoleBox, FloatBox, DateTimeBox};
|
use crate::boxes::{NullBox, ConsoleBox, FloatBox, DateTimeBox, SocketBox, HTTPServerBox, HTTPRequestBox, HTTPResponseBox};
|
||||||
// use crate::boxes::intent_box_wrapper::IntentBoxWrapper;
|
// use crate::boxes::intent_box_wrapper::IntentBoxWrapper;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
@ -607,6 +607,46 @@ impl NyashInterpreter {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
"SocketBox" => {
|
||||||
|
// SocketBoxは引数なしで作成
|
||||||
|
if !arguments.is_empty() {
|
||||||
|
return Err(RuntimeError::InvalidOperation {
|
||||||
|
message: format!("SocketBox constructor expects 0 arguments, got {}", arguments.len()),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let socket_box = Box::new(SocketBox::new()) as Box<dyn NyashBox>;
|
||||||
|
return Ok(socket_box);
|
||||||
|
}
|
||||||
|
"HTTPServerBox" => {
|
||||||
|
// HTTPServerBoxは引数なしで作成
|
||||||
|
if !arguments.is_empty() {
|
||||||
|
return Err(RuntimeError::InvalidOperation {
|
||||||
|
message: format!("HTTPServerBox constructor expects 0 arguments, got {}", arguments.len()),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let http_server_box = Box::new(HTTPServerBox::new()) as Box<dyn NyashBox>;
|
||||||
|
return Ok(http_server_box);
|
||||||
|
}
|
||||||
|
"HTTPRequestBox" => {
|
||||||
|
// HTTPRequestBoxは引数なしで作成
|
||||||
|
if !arguments.is_empty() {
|
||||||
|
return Err(RuntimeError::InvalidOperation {
|
||||||
|
message: format!("HTTPRequestBox constructor expects 0 arguments, got {}", arguments.len()),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let http_request_box = Box::new(HTTPRequestBox::new()) as Box<dyn NyashBox>;
|
||||||
|
return Ok(http_request_box);
|
||||||
|
}
|
||||||
|
"HTTPResponseBox" => {
|
||||||
|
// HTTPResponseBoxは引数なしで作成
|
||||||
|
if !arguments.is_empty() {
|
||||||
|
return Err(RuntimeError::InvalidOperation {
|
||||||
|
message: format!("HTTPResponseBox constructor expects 0 arguments, got {}", arguments.len()),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
let http_response_box = Box::new(HTTPResponseBox::new()) as Box<dyn NyashBox>;
|
||||||
|
return Ok(http_response_box);
|
||||||
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user