aboutsummaryrefslogtreecommitdiff
path: root/core/reflect
Commit message (Collapse)AuthorAgeFilesLines
* Add `struct #simple` to force a struct to use simple comparison if all of ↵gingerBill2026-01-291-2/+3
| | | | the fields "nearly simply comparable".
* Change seed logicgingerBill2025-12-211-3/+5
|
* Add `reflect.default_map_hash_by_ptr`gingerBill2025-12-211-0/+10
|
* Add `reflect.has_no_indirections`gingerBill2025-12-011-0/+67
|
* Fix `is_pointer_internally` not handling Named Types.blob18072025-11-281-1/+1
|
* Add `#all_or_none`gingerBill2025-11-051-3/+3
|
* Further overhaul of package line comments.Jeroen van Rijn2025-10-091-1/+1
|
* More package lines.Jeroen van Rijn2025-10-091-1/+1
|
* Add reflect.as_string16 and fix typosJeroen van Rijn2025-10-071-24/+46
|
* Merge examplesgingerBill2025-10-071-7/+6
|
* Space to tabsgingerBill2025-10-071-12/+12
|
* Fix typogingerBill2025-10-071-1/+1
|
* Improve documentation for `core:reflect`gingerBill2025-10-074-29/+330
|
* Change `is_utf16` field to `encoding` and use an enumgingerBill2025-08-051-2/+3
|
* Begin supporting `string16` across the core librarygingerBill2025-08-021-3/+5
|
* Remove use of `.no_copy`gingerBill2025-07-301-1/+1
|
* Change hashing rules for float-like types to make `0 == -0`gingerBill2025-04-161-3/+40
|
* Remove Type_Info_TupleJeroen van Rijn2025-04-132-9/+2
|
* Add `reflect.length` + `reflect.capacity` support for `#simd[N]T`Jeroen van Rijn2025-04-111-0/+8
|
* Add fix to `reflect.typeid_elem`Jeroen van Rijn2025-04-111-0/+1
|
* Remove `#relative` types from the compilergingerBill2024-11-142-86/+27
|
* reflect: add `enum_value_has_name` procLaytan Laats2024-11-111-0/+21
| | | | | Easy way to check if the current value has a defined name/member in the enum type.
* Add a few more reflect.bit_field_* helpers.Jeroen van Rijn2024-08-301-23/+68
|
* Add reflect.bit_fields_zippedJeroen van Rijn2024-08-301-0/+23
|
* fix core:reflect/iterator.odinunknown2024-08-241-1/+6
|
* fix `type_info_union_is_pure_maybe` only working with regular pointersLaytan Laats2024-08-111-1/+1
| | | | Fixes #3996
* Update comment.Jeroen van Rijn2024-08-051-3/+5
|
* Add `reflect.struct_field_count` that returns the number of fields in a ↵Jeroen van Rijn2024-08-051-0/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | struct type Example: ```odin package struct_count_example import "core:fmt" import "core:reflect" import "core:dynlib" Foo :: struct{ one: int, two: f32, } Bar :: struct { three: int, four: bool, five: f64, } Game_Api :: struct { init: proc(api: ^Game_Api), update: proc(api: ^Game_Api), using foo: Foo, bar: Bar, // Private stuff reload_count: int, __handle: rawptr, } API_PRIVATE_COUNT :: 2 game_api: Game_Api main :: proc() { fmt.printfln("Game_Api, .Top: %v", reflect.struct_field_count(Game_Api)) // 6 fmt.printfln("Game_Api, .Using: %v", reflect.struct_field_count(Game_Api, .Using)) // 8 fmt.printfln("Game_Api, .Recursive: %v", reflect.struct_field_count(Game_Api, .Recursive)) // 11 symbols_loaded, _ := dynlib.initialize_symbols(&game_api, "game.dll") symbols_expected := reflect.struct_field_count(Game_Api) - API_PRIVATE_COUNT if symbols_loaded == -1 { fmt.eprintln("Couldn't load game.dll") return } else if symbols_loaded != symbols_expected { fmt.eprintfln("Expected %v symbols, got %v", symbols_expected, symbols_loaded) return } } ```
* fix `reflect.any_base` and `reflect.any_core` with any's containing nilLaytan Laats2024-07-221-2/+2
|
* Add `#force_no_inline`gingerBill2024-07-141-1/+1
|
* Reduce the size of `runtime.Type_Info`gingerBill2024-07-142-27/+26
|
* Fix `reflect.as_pointer`gingerBill2024-07-041-1/+1
|
* Fix loads of indentation issues with mixing spaces and tabsgingerBill2024-06-291-2/+2
|
* Fix printing of big endian integers in a `bit_field`gingerBill2024-04-271-0/+61
|
* Merge pull request #3045 from laytan/cborgingerBill2024-04-151-0/+21
|\ | | | | encoding/cbor
| * encoding/cbor: deterministically store bit sets as big endianLaytan Laats2024-03-041-0/+21
| |
* | Add `#row_major matrix[R, C]T`gingerBill2024-03-191-0/+4
|/ | | | | As well as `#column_major matrix[R, C]T` as an alias for just `matrix[R, C]T`. This is because some libraries require a row_major internal layout but still want to be used with row or major oriented vectors.
* Begin work adding `bit_field`gingerBill2024-02-222-0/+41
|
* Add `reflect.enum_name_from_value` and `reflect.enum_name_from_value_any`gingerBill2024-02-211-0/+37
|
* Replace `core:*` to `base:*` where appropriategingerBill2024-01-282-3/+3
|
* Remove `core:mem` dependency from `core:reflect`gingerBill2024-01-281-3/+1
|
* Change return values from `Struct_Tag` to `string`gingerBill2024-01-281-5/+5
|
* Require parentheses for `#align(N)`gingerBill2023-08-151-4/+4
|
* Remove #relative slices; Replace with #relative multi-pointersgingerBill2023-08-052-68/+66
|
* Replace `x in &y` Use `&v in y` syntax through core & vendor for ↵gingerBill2023-06-261-2/+2
| | | | `switch`/`for` statements
* Rename `ODIN_DISALLOW_RTTI` to `ODIN_NO_RTTI`; Remove dead command line flagsgingerBill2023-06-121-1/+1
|
* Remove typojakubtomsu2023-04-231-1/+1
|
* Add `reflect.struct_field_value`gingerBill2023-03-171-1/+8
|
* Rename to `Type_Info_Parameters`gingerBill2023-02-082-8/+15
|
* Remove `@(require_results)` from one proceduregingerBill2023-01-301-1/+0
|