Spec-Zone.ru › Nim

std/importutils

Исходный код Редактировать

Утилиты, связанные с импортом и разрешением символов.

Экспериментальный API, может быть изменен.

Процедуры

proc privateAccess(t: typedesc) {.magic: "PrivateAccess", ...raises: [], tags: [],
                                  forbids: [].}
Включает доступ к закрытым полям t в текущем пространстве имён.

Пример: cmd: -d:nimImportutilsExample

# here we're importing a module containing:
# type
#   Foo = object
#     f0: int # private
#   Goo*[T] = object
#     g0: int # private
# proc initFoo*(): auto = Foo()
var f = initFoo()
block:
  assert not compiles(f.f0)
  privateAccess(f.type)
  f.f0 = 1 # accessible in this scope
  block:
    assert f.f0 == 1 # still in scope
assert not compiles(f.f0)

# this also works with generics
privateAccess(Goo)
assert Goo[float](g0: 1).g0 == 1
Исходный код Редактировать

© 2006–2024 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/importutils.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API