aboutsummaryrefslogtreecommitdiff
path: root/src/checker
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-22 10:48:21 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-22 11:14:36 +0100
commit2e79b4ac22321abd69c7f1a9748b5761abaab1ec (patch)
treee7f3cb04aa24ddb39fa2ae7418aac3a69f7fe791 /src/checker
parent6a83ee598406e9ee4bdd7169dfc4bb46284a2062 (diff)
downloadpush_swap-2e79b4ac22321abd69c7f1a9748b5761abaab1ec.tar.gz
push_swap-2e79b4ac22321abd69c7f1a9748b5761abaab1ec.tar.bz2
push_swap-2e79b4ac22321abd69c7f1a9748b5761abaab1ec.zip
Added micro optimisation when sorting frame == 2 and less reverse rotate when frame == full stack, norming
Diffstat (limited to 'src/checker')
-rw-r--r--src/checker/checker.h36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/checker/checker.h b/src/checker/checker.h
index 808e408..f6d50ef 100644
--- a/src/checker/checker.h
+++ b/src/checker/checker.h
@@ -6,10 +6,9 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/01/18 10:16:12 by cacharle #+# #+# */
-/* Updated: 2020/01/19 09:09:29 by cacharle ### ########.fr */
+/* Updated: 2020/01/22 10:42:16 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-#include <stdio.h>
#ifndef CHECKER_H
# define CHECKER_H
@@ -20,29 +19,32 @@
# define ACTION_ID_BUF_SIZE 4
-typedef enum
+typedef enum e_flag_arg
{
FLAG_ARG_A,
FLAG_ARG_B,
FLAG_ARG_A_B,
FLAG_ARG_B_A
-} t_flag_arg;
+} t_flag_arg;
-typedef struct
+typedef void (*t_func_arg_1)(t_stack *);
+typedef void (*t_func_arg_2)(t_stack *, t_stack *);
+
+typedef struct s_action
{
- const char *id;
- t_flag_arg args;
+ const char *id;
+ t_flag_arg args;
union
{
- void (*arg_1)(t_stack *);
- void (*arg_2)(t_stack *, t_stack *);
- } func;
-} t_action;
-
-t_status check(t_stack *a, t_stack *b);
-t_status read_action(t_stack *a, t_stack *b);
-t_status exec_action(char action_id[ACTION_ID_BUF_SIZE],
- t_stack *a, t_stack *b);
-t_bool stack_sorted(t_stack *stack);
+ t_func_arg_1 arg_1;
+ t_func_arg_2 arg_2;
+ } func;
+} t_action;
+
+t_status check(t_stack *a, t_stack *b);
+t_status read_action(t_stack *a, t_stack *b);
+t_status exec_action(char action_id[ACTION_ID_BUF_SIZE],
+ t_stack *a, t_stack *b);
+t_bool stack_sorted(t_stack *stack);
#endif