Skip to content
Snippets Groups Projects
Commit 5f6d367c authored by Gleb Kashkin's avatar Gleb Kashkin Committed by Igor Munkin
Browse files

compat: add is_new and is_old to options

It used to be somewhat complicated to check the effective value
of a compat option, because `<option_name>.current` could contain
'default' state.
This patch introduces helper functions that take care of that.

The following alternatives were considered:
* `compat.<option_name>.effective` - it is excessive in the presence
  if `current` and `default`, and is visible in serialization
* `compat.<option_name>.get()` - while it is a function, it does only
  half of the work required, user still has to compare result to 'new'

Closes #8807

@TarantoolBot document
Title: Add `:is_new/old()` helpers to tarantool.compat options

`compat.<option_name>.current` can be 'new', 'old' or 'default',
thus when it is default there must be an additional check if
`compat.<option_name>.default` is 'new'. It is handier to have a
helper to deal with that instead of complicated `if`:
* check if effective value is 'new' before the patch:
  ```lua
  if compat.<option_name>.current == 'new' or
          (compat.<option_name>.current == 'default' and
           compat.<option_name>.default == 'new') then
      ...
  end
  ```
* after the patch:
  ```lua
  if compat.<option_name>:is_new() then
      ...
  end
  ```

Please update [tutorial on using compat], maybe add an example to
[Listing options details].

[tutorial on using compat]: https://www.tarantool.io/en/doc/latest/reference/reference_lua/compat/compat_tutorial/
[Listing options details]: https://www.tarantool.io/en/doc/latest/reference/reference_lua/compat/compat_tutorial/#listing-options-details
parent 294f2d61
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment