view test/classdef/struct_wrapper.m @ 31241:5ea5fe592a9a

Don't delete labels when reordering of axes children (bug #63117) * graphics.in.h (children_property::do_set): Avoid using a temporary variable for new children list. Rephrase error message to be more accurate. Always return true for clarity.
author Pantxo Diribarne <pantxo.diribarne@gmail.com>
date Tue, 27 Sep 2022 23:30:54 +0200
parents ad71c8d87cff
children
line wrap: on
line source

classdef struct_wrapper
  properties
    s;
  end
  methods
    function o = struct_wrapper ()
      if (nargin == 0)
        o.s = struct ();
      else
        error ('struct_wrapper:SyntaxError', ...
               'struct_wrapper: Invalid syntax');
      end
    end
    function n = numel (o, varargin)
      n = 1;
    end
    function varargout = subsref (o, p)
      if (isequal (p(1).type, '{}'))
        r = [];
        for i = 1:numel (p(1).subs)
          r = [r, getfield(o.s, p(1).subs{i})];
        end
        varargout = {r};
      else
        error ('struct_wrapper:SyntaxError', ...
               'struct_wrapper: Invalid syntax');
      end
    end
    function o = subsasgn (o, p, varargin)
      if (isequal (p(1).type, '{}'))
        for i = 1:numel (p(1).subs)
          o.s = setfield (o.s, p(1).subs{i}, varargin{1}(i));
        end
      else
        error ('struct_wrapper:SyntaxError', ...
               'struct_wrapper: Invalid syntax');
      end
    end
  end
end