module graphql.validation.exception;

@safe:

class ValidationException : Exception {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class FragmentNotFoundException : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class FragmentCycleException : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class FragmentNameAlreadyInUseException : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class UnusedFragmentsException : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class LoneAnonymousOperationException : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class NonUniqueOperationNameException : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class NoTypeSystemDefinitionException : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class ArgumentsNotUniqueException : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class VariablesNotUniqueException : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class VariablesUseException : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class SingleRootField : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class FieldDoesNotExist : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class UnknownTypeName : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class FragmentNotOnCompositeType : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class LeafIsNotAScalar : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class ContradictingDirectives : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class DirectiveNotUnique : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class VariableInputTypeMismatch : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

class ArgumentDoesNotExist : ValidationException {
	this(string msg, string f, size_t l) {
		super(msg, f, l);
	}
}

