44 lines
		
	
	
		
			900 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			900 B
		
	
	
	
		
			V
		
	
	
// Copyright (c) 2019-2020 Alexander Medvednikov. All rights reserved.
 | 
						|
// Use of this source code is governed by an MIT license
 | 
						|
// that can be found in the LICENSE file.
 | 
						|
 | 
						|
// Will serve as more advanced input method
 | 
						|
// Based on the work of https://github.com/AmokHuginnsson/replxx
 | 
						|
 | 
						|
module readline
 | 
						|
 | 
						|
// Linux
 | 
						|
// Used to change the terminal options
 | 
						|
struct Termios {
 | 
						|
mut:
 | 
						|
  c_iflag int
 | 
						|
  c_oflag int
 | 
						|
  c_cflag int
 | 
						|
  c_lflag int
 | 
						|
  c_cc [12]int //NCCS == 12. Cant use the defined value here
 | 
						|
}
 | 
						|
 | 
						|
// Linux
 | 
						|
// Used to collect the screen information
 | 
						|
struct Winsize {
 | 
						|
  ws_row u16
 | 
						|
  ws_col u16
 | 
						|
  ws_xpixel u16
 | 
						|
  ws_ypixel u16
 | 
						|
}
 | 
						|
 | 
						|
pub struct Readline {
 | 
						|
mut:
 | 
						|
  is_raw bool
 | 
						|
  orig_termios Termios // Linux
 | 
						|
  current ustring // Line being edited
 | 
						|
  cursor int // Cursor position
 | 
						|
  overwrite bool
 | 
						|
  cursor_row_offset int
 | 
						|
  prompt string
 | 
						|
  prompt_offset int
 | 
						|
  previous_lines []ustring
 | 
						|
  search_index int
 | 
						|
  is_tty bool
 | 
						|
}
 |