[libvirt] [GSoC] Code design for scalar and external types