Mercurial > octave
view test/classdef/struct_wrapper.m @ 31214:19bd1953fc1d stable
GitHub-CI: Remove ubuntu-18.04 runners from build matrix.
* .github/workflow/make.yaml (ubuntu): GitHub-hosted runners for ubuntu-18.04
are being deprecated. Remove them from build matrix. See also:
https://github.com/actions/runner-images/issues/6002
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Tue, 30 Aug 2022 11:16:27 +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