Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions core/task.rbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
class Task < Object
def self.get: () -> Task
| (String name) -> Task?

alias self.current self.get

def self.list: () -> Array[Task]

def self.name_list: () -> Array[String]

def name: () -> String
def self.name: () -> String

def name=: (String name) -> String
def self.name=: (String name) -> String

def priority: () -> Integer
def self.priority: () -> Integer

def priority=: (Integer priority) -> Integer
def self.priority=: (Integer priority) -> Integer

def status: () -> String

def suspend: () -> void
def self.suspend: () -> void

def resume: () -> void

def terminate: () -> void
def self.terminate: () -> void

# TODO: Exception
def raise: () -> void
# | (Exception exception)

def join: () -> Task

def value: () -> untyped

def pass: () -> void

def self.create: (String byte_code, ?Integer regs_size) -> Task

def run: () -> void

def rewind: () -> void
end
52 changes: 52 additions & 0 deletions test/task.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# frozen_string_literal: true

task = Task.current

Task.get
Task.get 'name'

Task.current
Task.current ''

Task.list

Task.name_list

task.name
Task.name

task.name = ''
Task.name = ''

task.priority
Task.priority

task.priority = 0
Task.priority = 0

task.status

task.suspend
Task.suspend

task.resume

task.terminate
Task.terminate

task.raise

task.join

task.value

task.pass

Task.create ''
Task.create '', 4

task.run

task.rewind

# rubocop:enable all