Result<T, E>
overhaul.
Background:
- The main use-case of
Result<T, E>
is to serve as return of a function that can either have a successful result of
typeT
or an error of typeE
. - In pretty much all cases the error is just a
string
, i.e. the common use isResult<T, string>
Changes:
- For simplification the type parameter for the error case is dropped, i.e. a result is just
Result<T>
- The old notation
Result<T, E>
(or ratherResult<T, string>
) will still work, but the second parameter is ignored
- The old notation
- The
result.error
field is now a newly introducedcore::error::Error
- For compatibility
core::error::Error
will be automatically converted to a string - Just like before an error
Result
can be created using the builtinErr
function with an error message
- For compatibility
- In addition to the error
message
thecore::error::Error
additional contains astack_trace
to help locating
where theError
was created - As an additional helper there this a
core::error::current_stack()
function to obtain the current stack trace for
debugging purposes.
Support for script based logs:
- Add
MAIN_LOG
andopen_log_file(string)
toksp::debug
- Log files will be cared ein
logs
sub-folder ofto2Local
- Log files will be cared ein
General improvements:
- Add
vessel.has_launched
,vessel.launch_time
andvessel.time_since_launch
(the latter should be the mission time) - Fix issue in
std::control::sterring
not working for "poorly" oriented command modules - Basic support for aerodynamic drag and lift-forces:
- Add
part.lifting_surface
andpart.dard
- Add drag, lift and body lift properties to
ModuleLiftingSurface
,ModuleDrag
andModuleControlSurface
- Add