// // dolmetschctl // // // Copyright (C) 2019 Christian Pointner // // This file is part of dolmetschctl. // // dolmetschctl is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // dolmetschctl is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with dolmetschctl. If not, see . // package types // State Machine type State int const ( StateNew = iota StateSettling StateSettled ) func (s State) String() string { switch s { case StateNew: return "new" case StateSettling: return "settling" case StateSettled: return "settled" default: return "unknown" } } func (s State) MarshalText() (data []byte, err error) { data = []byte(s.String()) return } type Language string func (l Language) String() string { if l == "" { return "none" } return string(l) } func (s Language) MarshalText() (data []byte, err error) { data = []byte(s.String()) return } type FullState struct { State State Ratio float32 Language Language } // Web Interface type WebError struct { ResponseCode int `json:"response-code"` Error string `json:"error"` } type WebLanguage struct { Lang Language `json:"language"` } type WebState struct { State State `json:"state"` Ratio float32 `json:"original-to-interpreter-ratio"` Lang Language `json:"language"` } type WebSocketRequest struct { Command string `json:"command"` Args []string `json:"arguments"` } type WebSocketResponseBase struct { ResponseCode int `json:"response-code"` Type string `json:"type"` } type WebSocketResponseError struct { WebSocketResponseBase ErrorString string `json:"error"` } type WebSocketResponseState struct { WebSocketResponseBase WebState } type WebSocketResponseLanguages struct { WebSocketResponseBase Languages []Language `json:"languages"` }