func ParseRequirementBytes()

in table/requirements.go [297:365]


func ParseRequirementBytes(b []byte) (Requirement, error) {
	var base baseRequirement
	if err := json.Unmarshal(b, &base); err != nil {
		return nil, err
	}

	switch base.Type {
	case reqAssertCreate:
		return AssertCreate(), nil

	case reqAssertTableUUID:
		var req assertTableUuid
		if err := json.Unmarshal(b, &req); err != nil {
			return nil, err
		}

		return AssertTableUUID(req.UUID), nil

	case reqAssertRefSnapshotID:
		var req assertRefSnapshotID
		if err := json.Unmarshal(b, &req); err != nil {
			return nil, err
		}

		return AssertRefSnapshotID(req.Ref, req.SnapshotID), nil

	case reqAssertDefaultSpecID:
		var req assertDefaultSpecId
		if err := json.Unmarshal(b, &req); err != nil {
			return nil, err
		}

		return AssertDefaultSpecID(req.DefaultSpecID), nil

	case reqAssertCurrentSchemaID:
		var req assertCurrentSchemaId
		if err := json.Unmarshal(b, &req); err != nil {
			return nil, err
		}

		return AssertCurrentSchemaID(req.CurrentSchemaID), nil

	case reqAssertDefaultSortOrderID:
		var req assertDefaultSortOrderId
		if err := json.Unmarshal(b, &req); err != nil {
			return nil, err
		}

		return AssertDefaultSortOrderID(req.DefaultSortOrderID), nil

	case reqAssertLastAssignedFieldID:
		var req assertLastAssignedFieldId
		if err := json.Unmarshal(b, &req); err != nil {
			return nil, err
		}

		return AssertLastAssignedFieldID(req.LastAssignedFieldID), nil

	case reqAssertLastAssignedPartitionID:
		var req assertLastAssignedPartitionId
		if err := json.Unmarshal(b, &req); err != nil {
			return nil, err
		}

		return AssertLastAssignedPartitionID(req.LastAssignedPartitionID), nil
	}

	return nil, ErrInvalidRequirement
}