# action.rl ## Free Functions - **Function**: `can_apply_impl(ActionType action, FrameType frame) -> Bool` - **Function**: `apply(ActionType action, FrameType frame) ` - **Function**: `apply(Vector action, FrameType frame) -> Bool` - **Function**: `parse_and_execute(FrameType state, AllActionsVariant variant, Vector input, Int read_bytes) ` - **Function**: `parse_actions(AllActionsVariant variant, Vector input, Int read_bytes) -> Vector` - **Function**: `parse_actions(AllActionsVariant variant, String input) -> Vector` - **Function**: `parse_action_optimized(AllActionsVariant variant, Vector input, Int read_bytes) -> Bool` ```text parses actions taking only one byte and by taking taking the reminder of the parsed number divided by the number of actions, so that no action is ever marked as invalid ``` - **Function**: `parse_actions(AllActionsVariant variant, Vector input) -> Vector` - **Function**: `parse_and_execute(FrameType state, AllActionsVariant variant, Vector input) ` - **Function**: `make_valid_actions_vector(Vector all_actions, FrameType state) -> Vector` - **Function**: `get_valid_actions(Vector valid_actions, Vector all_actions, FrameType state) ` - **Function**: `gen_python_methods(FrameType state, AllActionsVariant variant) ` ```text method that bust be present in binary to ensure that all methods required by rlc-learn are available ``` - **Function**: `load_action_vector_file(String file_name, Vector out) -> Bool` - **Function**: `enumerate(Bool b, Vector output) ` - **Function**: `enumeration_error(Int x, String out, Vector context) ` - **Function**: `enumeration_error(Float x, String out, Vector context) ` - **Function**: `enumeration_error( x, String out, Vector context) ` - **Function**: `enumeration_error(T[size] x, String out, Vector context) ` - **Function**: `enumeration_error(Vector x, String out, Vector context) ` - **Function**: `get_enumeration_errors_impl(T obj, String out, Vector context) ` - **Function**: `get_enumeration_errors(T obj) -> String` - **Function**: `print_enumeration_errors(T obj) -> Bool` - **Function**: `enumerate(T b, Vector output) ` - **Function**: `enumerate(T obj) -> Vector` - **Function**: `write_in_observation_tensor(Int value, Int min, Int max, Vector output, Int index) ` - **Function**: `write_in_observation_tensor(Int obj, Int observer_id, Vector output, Int index) ` - **Function**: `size_as_observation_tensor(Int obj) -> Int` - **Function**: `write_in_observation_tensor(Float obj, Int observer_id, Vector output, Int index) ` - **Function**: `size_as_observation_tensor(Float obj) -> Int` - **Function**: `write_in_observation_tensor(Bool obj, Int observer_id, Vector output, Int index) ` - **Function**: `size_as_observation_tensor(Bool obj) -> Int` - **Function**: `write_in_observation_tensor(Byte obj, Int observer_id, Vector output, Int index) ` - **Function**: `size_as_observation_tensor(Byte obj) -> Int` - **Function**: `write_in_observation_tensor(T[X] obj, Int observer_id, Vector output, Int index) ` - **Function**: `size_as_observation_tensor(T[X] obj) -> Int` - **Function**: `write_in_observation_tensor(Vector obj, Int observer_id, Vector output, Int index) ` - **Function**: `size_as_observation_tensor(Vector obj) -> Int` - **Function**: `write_in_observation_tensor(BoundedVector obj, Int observer_id, Vector output, Int index) ` - **Function**: `size_as_observation_tensor(BoundedVector obj) -> Int` - **Function**: `write_in_observation_tensor(BInt obj, Int observer_id, Vector output, Int index) ` - **Function**: `size_as_observation_tensor(BInt obj) -> Int` - **Function**: `write_in_observation_tensor(LinearlyDistributedInt obj, Int observer_id, Vector output, Int index) ` - **Function**: `size_as_observation_tensor(LinearlyDistributedInt obj) -> Int` - **Function**: `to_observation_tensor(T obj, Int observer_id, Vector output) ` - **Function**: `to_observation_tensor(T obj, Int observer_id, Vector output, Int written_bytes) ` - **Function**: `to_observation_tensor(T obj, Int observer_id) -> Vector` - **Function**: `observation_tensor_size(T obj) -> Int` - **Function**: `write_tensor_warning_context(String out, Vector context) ` - **Function**: `tensorable_warning(Int x, String out, Vector context) ` - **Function**: `tensorable_warning(Float x, String out, Vector context) ` - **Function**: `tensorable_warning( x, String out, Vector context) ` - **Function**: `tensorable_warning(T[size] x, String out, Vector context) ` - **Function**: `tensorable_warning(Vector x, String out, Vector context) ` - **Function**: `to_observation_tensor_warnings(T obj) -> String` - **Function**: `emit_observation_tensor_warnings(T obj) ` ## Traits ## Trait ApplicableTo - **Function**: `apply(ActionType action, FrameType frame) ` ## Trait Enumerable ```text trait that must be implemented by a type to enumerate all possible values of that types (ex: enumerate(bool) return {true, false}) this is used by machine learning techniques that need to enumerate all possible actions. ``` - **Function**: `enumerate(T obj, Vector output) ` ## Trait CustomEnumerationError - **Function**: `enumeration_error(T x, String out, Vector context) ` ## Trait Tensorable ```text trait that must be implemented to specify how a given type is to be converted into a tensor for machine learning consumptions. The encoding should be, when possible, one-hot encoding. ``` - **Function**: `write_in_observation_tensor(T obj, Int observer_id, Vector output, Int counter) ` - **Function**: `size_as_observation_tensor(T obj) -> Int` ## Trait CustomTensorWarnings - **Function**: `tensorable_warning(T x, String out, Vector context) `