protected RegisterField(PeripheralRegister parent, int position, int width, FieldMode fieldMode, Action <T, T> readCallback,
                         Action <T, T> writeCallback, Action <T, T> changeCallback, Func <T, T> valueProviderCallback) : base(parent, position, width, fieldMode)
 {
     this.readCallback          = readCallback;
     this.writeCallback         = writeCallback;
     this.changeCallback        = changeCallback;
     this.valueProviderCallback = valueProviderCallback;
 }
            protected RegisterField(PeripheralRegister parent, int position, int width, FieldMode fieldMode, Action <T, T> readCallback,
                                    Action <T, T> writeCallback, Action <T, T> changeCallback, Func <T, T> valueProviderCallback) : base(parent, position, width, fieldMode)
            {
                if (!fieldMode.IsReadable() && valueProviderCallback != null)
                {
                    throw new ArgumentException($"A write-only field cannot provide a value callback.");
                }

                this.readCallback          = readCallback;
                this.writeCallback         = writeCallback;
                this.changeCallback        = changeCallback;
                this.valueProviderCallback = valueProviderCallback;
            }
 public FlagRegisterField(PeripheralRegister parent, int position, FieldMode fieldMode, Action <bool, bool> readCallback,
                          Action <bool, bool> writeCallback, Action <bool, bool> changeCallback, Func <bool, bool> valueProviderCallback)
     : base(parent, position, 1, fieldMode, readCallback, writeCallback, changeCallback, valueProviderCallback)
 {
 }
 public EnumRegisterField(PeripheralRegister parent, int position, int width, FieldMode fieldMode, Action <TEnum, TEnum> readCallback,
                          Action <TEnum, TEnum> writeCallback, Action <TEnum, TEnum> changeCallback, Func <TEnum, TEnum> valueProviderCallback)
     : base(parent, position, width, fieldMode, readCallback, writeCallback, changeCallback, valueProviderCallback)
 {
 }