Machine learning for structural engineering: A state-of-the-art review